我有一个Codeigniter网络应用程序,每小时将许多小文件上传到Amazon S3,这导致我的S3请求费用快速上线。解决这个问题的一种方法是压缩文件,将zip文件上传到S3,然后在S3上解压缩。
可以使用EC2完成吗?或者有更好的方法来实现这一目标吗?谢谢!!
编辑:如果我要使用EC2,我是否使用PHP来触发创建EC2实例,上传解压缩压缩文件所需的PHP文件,将未压缩的文件复制到S3,然后销毁EC2实例? / p>答案 0 :(得分:25)
如果您在同一地区有EC2机器,我建议您将其上传到拉链,然后将其从解压缩到s3。 S3无法将其自身解压缩为全静态。
在ec2和s3之间不收取费用,因此ec2可以处理解压缩,然后将其写入您的s3存储桶,无需额外的传输费用。
答案 1 :(得分:9)
您可以在lambda中编写代码以解压缩S3存储桶的文件,您只需使用它,AWS Lambda将为您执行此操作。
参考:
答案 2 :(得分:2)
S3只是存储。您上传的文件是存储的文件。您无法上传zip文件,然后在S3中将其解压缩。如果您编写应用程序,我可以说的最好的方法是尝试重新设计存储文件的方式。 S3请求相当便宜......你必须提出很多请求。
答案 3 :(得分:2)
我一直在使用这项服务解压缩数千个小图像文件的文件,我上传的每个zip大约4GB,使用http://www.cloudzipinc.com/service/s3_unzip解压缩大约需要花费1美元,这可能对某人有帮助。
话虽如此,您可能会发现使用Python与Boto库更容易。这比PHP更有效。