【发布时间】:2016-09-27 06:38:24
【问题描述】:
我正在尝试将存储在 S3 上的文件下载到本地 Laravel 安装以对其进行操作。将不胜感激一些帮助。
我已经正确设置了配置数据,因为我可以毫无问题地上传它。我使用以下模式将其保存在 S3 中“user->id / media->id.mp3”-> 请注意,我不只是在 S3 上转储文件,而是将它们保存在目录中。
成功将文件上传到 S3 后,我更新了数据库中的保存路径以显示“user->id / media->id.mp3”,而不是一些长的公共 url(这是错误的)吗?
当我稍后返回尝试下载文件时,我在 S3 收到 FileNotFoundException。我正在这样做。
$audio = Storage::disk('s3')->get($media->location);
奇怪的是,在异常中它显示了它无法获取的资源,但是当我将相同的 url 放在浏览器中时,它会毫无问题地显示文件。为什么文件系统无法获取文件?
我曾尝试在“get”之前进行“has”检查,但 has 检查结果为假。
我是否需要将完整的公共 URL 保存在数据库中才能正常工作?我试过了,但没有帮助。我觉得我错过了一些非常简单的东西,这让我发疯了!!
【问题讨论】:
-
你的 url 可能是这样的s3.amazonaws.com/your_bucket/some_folder/some_other_folder/… 所以在从 aws 获取文件时需要传递存储桶后的完整路径
标签: php amazon-web-services amazon-s3 laravel-5 download