2012-03-15 105 views
14

我有一个上传每隔一小时到Amazon S3,这是造成我的S3请求费用也拍实快许多微小的文件笨web应用程序。解决这个问题的一种方法是压缩文件,将zip文件上传到S3,然后在S3上解压缩。上传ZIP文件到S3,EC2使用解压缩

可以这样使用EC2做?还是有更好的方法来实现这一目标?谢谢!!

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

+0

你不能存储在S3压缩文件? – 2012-03-15 12:29:50

+0

我希望单个解压缩文件在S3上可用。将其压缩(将100个小文件分成1个zip文件)的原因是为了减少“PUT”请求的数量,这大大增加了S3使用的成本。 – Nyxynyx 2012-03-15 12:37:18

+1

将ZIP文件上传到S3并在EC2上解压它们以降低成本将无济于事:它仍会花费您对从EC2进入S3的每个解压缩文件的PUT请求。 – Daan 2012-03-15 18:36:27

回答

23

如果在同一地区有EC2机我建议你把它上传有压缩,然后将其拖放到S3从这里拉开。 S3无法自行解压,因为它的全部是静态的。

即使世界EC2和S3所以EC2可以处理解压,然后将它写出来到您的S3存储,无需额外转账费之间没有收费。

+2

带宽是免费的,但你会支付PUTs(目前每1,000个请求0.005美元)。如果你有一个带有10,000个小文件的zip文件,上传会花费一些东西,更重要的是,它需要一段时间。 – Ben 2015-07-19 00:49:56

+1

亲爱的@Akshat,请分享链接或代码从EC2到S3写一个文件夹(它已经解压缩),如果你有这个,将不胜感激 – 2016-04-27 07:27:51

2

S3只是存储。无论您上传的文件是存储的文件。你不能上传一个zip文件,然后在S3中提取它。如果您编写应用程序,我可以说的最好的事情就是尝试重新设计您存储文件的方式。 S3请求相当便宜...你必须提出很多请求。

2

我一直在使用这项服务来解压全部成千上万个小图片文件,我上传的每个zip文件大约是4GB,并且使用http://www.cloudzipinc.com/service/s3_unzip解码时需要花费1美元左右,也许这可能有助于某人。

说了这么多,你可能会发现它更容易使用的Python与Boto程式库。这将比PHP更有效。