将ZIP文件上传到S3,使用EC2解压缩

Nyx*_*nyx 22 php codeigniter amazon-s3 amazon-ec2

我有一个Codeigniter网络应用程序,每小时上传许多小文件到亚马逊S3,这导致我的S3请求费用真正快速上升.解决这个问题的一种方法是压缩文件,将zip文件上传到S3,然后在S3上解压缩.

可以使用EC2完成吗?或者有更好的方法来实现这一目标吗?谢谢!!

编辑:如果我使用EC2,我是否使用PHP来触发创建EC2实例,上传解压缩压缩文件所需的PHP文件,将未压缩的文件复制到S3,然后销毁EC2实例?

Aks*_*hat 28

如果您在同一地区有一台EC2机器,我建议您将其上传到拉链,然后将其从解压缩到s3.S3无法将其自身解压缩为全静态.

在ec2和s3之间没有任何费用,因此ec2可以处理解压缩,然后将其写入您的s3存储桶而无需额外的传输费用.

  • 带宽是免费的,但您将支付PUT(目前每1,000个请求0.005美元).如果你有一个带有10,000个小文件的zip文件,那么上传将花费一些东西,更重要的是,它需要一段时间. (4认同)
  • 不需要使用ec2来做这么简单的事情.使用Lambda.可以轻松修改Aman Garg链接到的项目以从S3中提取文件,而不是将其作为上载接收.https://github.com/mehmetboraezer/aws-lambda-unzip (2认同)

Ama*_*arg 9

您可以在lambda中编写代码以解压缩S3存储桶的文件,您只需使用它,AWS Lambda将为您执行此操作.

Referece:

  1. https://github.com/carloscarcamo/aws-lambda-unzip-py/blob/master/unzip.py
  2. https://github.com/mehmetboraezer/aws-lambda-unzip