ack*_*hez 5 php download amazon-s3 amazon-web-services laravel-5
我正在尝试将存储在S3上的文件下载到本地Laravel安装中以进行操作。希望能有所帮助。
我已经正确设置了配置数据,因为我可以轻松上传它。我使用以下模式“ user-> id / media-> id.mp3”将其保存在S3中->请注意,我不仅将文件转储到S3中,还将它们保存在目录中。
成功将文件上传到S3之后,我更新了数据库中的保存路径,以显示“ user-> id / media-> id.mp3”,而不是一些较长的公共URL(这是错误的)吗?
当我稍后返回尝试下载文件时,在S3处出现FileNotFoundException。我在做
$audio = Storage::disk('s3')->get($media->location);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,在例外情况下,它显示了无法获取的资源,但是当我在浏览器中放置相同的url时,它显示的文件没有任何问题。为什么文件系统无法获取文件?
我试图在“获取”之前进行“具有”检查,并且具有检查错误。
我需要在数据库中保存完整的公共URL才能起作用吗?我尝试过,但没有帮助。我觉得我缺少一些非常简单的东西,这让我发疯了!
答案较晚,但对其他人很重要,
$s3_file = Storage::disk('s3')->get(request()->file);
$s3 = Storage::disk('public');
$s3->put("./file_name.tif", $s3_file);
Run Code Online (Sandbox Code Playgroud)
$ s3_file的响应将是一个流,您可以使用Laravel put file方法将该流数据保存到文件,您将在storage/public目录中找到该流文件。
| 归档时间: |
|
| 查看次数: |
4407 次 |
| 最近记录: |