Moh*_*yed 6 amazon-s3 laravel aws-sdk laravel-blade aws-serverless
任何人都可以帮助我如何使用 PHP laravel 将文件上传到 aws S3 存储桶。但文件应该使用预签名 URL 直接上传到 S3。
小智 3
我将尝试回答这个问题。因此,有两种方法可以做到这一点:
您将预签名的 URL 发送到前端客户端,并让他们直接将文件上传到 S3,上传后,他们会通知您的服务器。
您直接在服务器上接收文件并将其上传到 S3,在这种情况下,您不需要任何预签名 URL,因为您已经在项目内配置了 AWS 访问。
由于解决方案 1 是不言自明的,我将尝试解释解决方案 2。
Laravel 提供了StorageFacade 来处理文件系统操作。它遵循多个驱动程序的理念 - Public、Local Disk、Amazon S3、FTP以及扩展驱动程序的选项。
步骤 1:使用 AWS 密钥配置您的 .env 文件,您将需要以下值才能开始用作Amazon S3驱动程序:
步骤 2:假设您已经将文件上传到您的服务器。我们现在将文件从我们的服务器上传到 S3。
如果您已将s3其指定为默认磁盘,则以下代码段将为您执行上传操作:
Storage::put('avatars/1', $fileContents);
Run Code Online (Sandbox Code Playgroud)
如果您使用多个磁盘,您可以通过以下方式上传文件:
Storage::disk('s3')->put('avatars/1', $fileContents);
Run Code Online (Sandbox Code Playgroud)
我们完了!您的文件现已上传到您的 S3 存储桶。在 S3 存储桶内仔细检查它。
如果您想了解有关 Laravel 存储的更多信息,请单击此处。
| 归档时间: |
|
| 查看次数: |
9514 次 |
| 最近记录: |