Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. <?php
  2. Route::get('dir', function()
  3. {
  4. return View::make('dir');
  5. });
  6. Route::post('dir', function()
  7. {
  8. $v = Validator::make(Input::all(), ['name' => 'required']);
  9. if ($v->fails()) {
  10. return Redirect::back()->withErrors($v);
  11. }
  12. // criar diretório 13
  13. $result = AWS::get('s3')->putObject([
  14. 'Bucket' => 'bucketName',
  15. 'Key' => rtrim(Input::get('name'), '/') . '/',
  16. 'Body' => ''
  17. ]);
  18. echo $result;
  19. });
  20. Route::get('aws', function()
  21. {
  22. return View::make('aws');
  23. });
  24. Route::post('awsupload', function()
  25. {
  26. if (Input::hasFile('file')) {
  27. $file = Input::file('file');
  28. $result = AWS::get('s3')->putObject([
  29. 'Bucket' => 'bucketName',
  30. 'Key' => "images/{$file->getClientOriginalName()}",
  31. 'SourceFile' => $file->getRealPath(),
  32. 'ACL' => \Aws\S3\Enum\CannedAcl::PRIVATE_ACCESS // Em princípio fechado
  33. ]);
  34. // TODO Salvar dados da imagem
  35. return Response::json(['result' => 'success', 'object' => $result->toArray()]);
  36. }
  37. return Response::json(['result' => 'error'], 500);
  38. });
  39. Route::get('s3result', function()
  40. {
  41. // Obter objetos em um diretório específico de um bucket
  42. /** @var \Aws\S3\S3Client $s3 */
  43. $s3 = AWS::get('s3');
  44. $objects = $s3->getIterator('ListObjects', [
  45. 'Bucket' => 'bucketName',
  46. 'Prefix' => 'images/',
  47. 'Delimiter' => '/'
  48. ]);
  49. $files = [];
  50. foreach ($objects as $o) {
  51. // Remover pasta (tamanho da pasta é 0)
  52. if ($o['Size'] == 0) {
  53. continue;
  54. }
  55. $clazz = new stdClass;
  56. $clazz->key = $o['Key'];
  57. // pre-signed URL Obter (URL pública temporária)
  58. $command = $s3->getCommand('GetObject', [
  59. 'Bucket' => 'smoochy',
  60. 'Key' => $clazz->key
  61. ]);
  62. // Obtenha um URL válido por 10 minutos
  63. $clazz->url = $command->createPresignedUrl('+10 minutes');
  64. $files[] = $clazz;
  65. }
  66. return View::make('s3result', ['files' => $files, 'objects' => $objects->toArray()]);
  67. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement