在ec2上解压缩文件并将其保存在S3上?

时间:2014-04-09 11:46:39

标签: amazon-web-services amazon-ec2 amazon-s3

我有一个大约20 GB的zip文件,包含大约400,000张图像,我可以使用wget移动到我的EC2实例。现在我想解压缩文件并将它们保存到我的S3中。

如果我不需要首先将它们解压缩到ec2,那将会很棒。我可以通过SSH以某种方式使用unzip -options将每个文件提取到S3吗?

我找到了这样的答案https://stackoverflow.com/a/9722141/2335675。但是我并没有理解他将“解压缩到S3”的含义。我可以通过SSH连接到我的EC2实例吗?亚马逊是否有某种构建的解压缩命令将其提取到s3而不是当前服务器?

我可以看到其他人问过这个问题,但我无法直接回答如何实际做到这一点。

2 个答案:

答案 0 :(得分:8)

我是如何解决的:

  1. 我在EC2实例上创建了一个辅助卷,以便为文件x3左右提供空间,还包括提取文件的空间。请参阅此处的指南:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-add-volume-to-instance.html
  2. 通过SSH连接到EC2实例,我使用unzip命令将文件解压缩到新卷。
  3. 我使用aws s3 cp myfolder s3://mybucket/myfolder --recursive将我的所有文件移到我的S3存储桶中。
  4. 我删除了临时卷及其上的所有文件。
  5. 一切都是使用SSH完成的。无需脚本或编程。

    请记住,您需要使用sudo获得许可才能执行许多操作。

答案 1 :(得分:1)

  • 第一个解决方案:
    1. 使用s3fs在ec2上安装s3。
    2. 将文件解压缩到挂载点。
  • 第二个解决方案:
    1. 使用python及其aws库boto
    2. 使用zipfile
    3. 将一个文件提取到时间位置
    4. 并使用boto
    5. 将其上传到s3
    6. 然后删除临时文件。
    7. 完成时转到2