在一个zip文件中从AmazonS3下载多个图像


Download multiple images from Amazon S3 in a zip file?

我在网络主机上有一个网页,图像存储在AmazonS3上。我希望php能够通过我的网页以zip文件的形式从AmazonS3下载多个图像。

我的选择是什么?什么是最好的?

据我所知,在S3上压缩文件是不可能的。我可以使用亚马逊lambda吗?

我遇到的最好的解决方案。

  1. 用户在我的网站上选择他们想要下载的图像
  2. 我从网络主机上的数据库中获取文件名,并下载图像从S3到我的web主机上的临时目录。

  3. 在临时目录中创建一个zip文件,并发送一个链接给用户。一段时间后,我清理了我的网络主机上的临时目录(使用脚本)。

但如果有一种方法不经过我的主机来创建和下载zip文件,那就太好了。

AWS S3是"基本构建块",因此它不支持像将多个对象压缩在一起这样的功能。

您已经想出了一个很好的方法来实现这一点,尽管您可以将对象流式传输到zip文件中,而不是下载它们。EC2实例可以非常快速地完成,因为它们往往具有到S3的快速连接。

Lambda不适用于此,因为它只有在将对象放入S3存储桶时才会触发。你的做法正好相反。

在GitHub上找到了一个非常酷的解决方案:

github

这就是AWS lamba,它允许在s3上组合多个文件,将它们打包到zip归档,上传到s3,然后允许下载归档。