【问题标题】:Zip and download files from Amazon S3 with Laravel使用 Laravel 从 Amazon S3 压缩和下载文件
【发布时间】:2017-07-29 19:25:47
【问题描述】:

我有一个允许上传照片的 Laravel 项目,它们存储在 S3 存储桶中。

在特定时间,需要下载整个专辑,该专辑是 S3 存储桶中的一个文件夹。因此,应将其下载为包含该专辑照片的 ZIP 文件。

当这些存储在本地存储中时,我设法做到了这一点。

 public function downloadZip() {
            $files = glob(public_path('js/*'));
            Zipper::make('mydir/mytest3.zip')->add($files);


            return response()->download(public_path('mydir/mytest3.zip'));
 }

但是,在 S3 存储桶中,该方法不起作用。

有没有办法做到这一点?

【问题讨论】:

  • 你在本地存储上使用了什么方法?
  • @ceejayoz 我更新了问题:)
  • 好的,是的,这行不通。您不能对 S3 存储桶使用 glob。没有一种非常简单的方法可以做你想做的事 - 你需要将文件下载到你的服务器并在那里压缩它们。请参阅stackoverflow.com/questions/16368119/… 了解原因和可能的方法。
  • @ceejayoz 谢谢!会检查的!!!! :)

标签: php laravel amazon-web-services amazon-s3


【解决方案1】:

您可以尝试亚马逊服务功能Async transfers。这将帮助您获取 s3 文件,然后您可以使用 Zipper 逻辑来压缩这些文件。

【讨论】:

    【解决方案2】:

    AWS 公开了适用于 Java/PHP 等不同平台的 SDK,以与不同的 AWS 服务进行交互。

    您需要访问https://aws.amazon.com/sdk-for-php/ 以便您的 PHP 代码从 s3 复制文件

    【讨论】:

    • Laravel 通过 Storage 门面内置了对 S3 的处理。
    猜你喜欢
    • 2014-12-01
    • 2019-07-18
    • 1970-01-01
    • 2017-05-04
    • 2013-08-29
    • 1970-01-01
    • 2012-10-10
    • 2012-08-29
    • 2013-05-08
    相关资源
    最近更新 更多