gpt4 book ai didi

php - Laravel 从 S3 下载到本地

转载 作者:可可西里 更新时间:2023-10-31 22:10:06 26 4
gpt4 key购买 nike

我正在尝试将存储在 S3 上的文件下载到本地 Laravel 安装以对其进行操作。会很感激一些帮助。

我已经正确设置了配置数据,因为我可以毫无问题地上传它。我使用以下模式将其保存在 S3 中“user->id/media->id.mp3”--> 请注意,我不只是将文件转储到 S3 上,而是将它们保存在目录中。

将文件成功上传到 S3 后,我更新数据库中的保存路径以显示“user->id/media->id.mp3”,而不是一些长公共(public) url(这是错误的)吗?

当我稍后返回尝试下载文件时,我在 S3 处收到 FileNotFoundException。我正在做这个。

$audio = Storage::disk('s3')->get($media->location);

奇怪的是,在异常情况下,它显示了它无法获取的资源,但是当我将相同的 url 放入浏览器时,它显示了该文件,一点问题都没有。为什么文件系统获取不到文件?

我试图在“get”之前进行“has”检查,但“has”检查结果为假。

我是否需要在数据库中保存完整的公共(public) URL 才能工作?我试过了,但没有用。我觉得我错过了一些非常简单的东西,这让我发疯!!

最佳答案

迟到的答案,但对其他人很重要,

 $s3_file = Storage::disk('s3')->get(request()->file);
$s3 = Storage::disk('public');
$s3->put("./file_name.tif", $s3_file);

$s3_file 的响应将是一个流,你可以使用 Laravel 的 put file 方法将该流数据保存到文件,你会在 storage/public 目录中找到这个流文件。

关于php - Laravel 从 S3 下载到本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37508607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com