amazonweb服务-在ec2上解压缩文件并保存在S3上



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

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

我找到了这样的答案https://stackoverflow.com/a/9722141/2335675.但我不明白他所说的"解压到S3"到底是什么意思。我可以在通过SSH连接到我的EC2实例时执行此操作吗?Amazon是否有某种内置的解压命令,可以将其提取到s3而不是当前服务器?

我可以看到其他人问过这个问题,但我无法找到如何真正做到这一点的直接答案。

我是如何解决的:

  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. 我删除了我的临时卷和上面的所有文件

一切都是使用SSH完成的。不需要脚本或编程。

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

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

最新更新