我有一个大约20 GB大的zip文件,其中包含大约400'000个图像,我可以通过使用wget
将这些图像移动到我的EC2实例。现在我想解压缩这些文件并将它们保存到我的S3中。
如果我不需要先把它们解压到ec2,那就太好了。我可以通过SSH以某种方式使用unzip -options
将每个文件提取到S3吗?
我找到了这样的答案https://stackoverflow.com/a/9722141/2335675.但我不明白他所说的"解压到S3"到底是什么意思。我可以在通过SSH连接到我的EC2实例时执行此操作吗?Amazon是否有某种内置的解压命令,可以将其提取到s3而不是当前服务器?
我可以看到其他人问过这个问题,但我无法找到如何真正做到这一点的直接答案。
我是如何解决的:
- 我在我的EC2实例上创建了一个辅助卷,以便为文件x3左右留出空间,还为提取的文件留出空间。请参阅此处的指南:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-add-volume-to-instance.html
- 通过SSH连接到EC2实例,我使用
unzip
命令将文件解压缩到新卷 - 我使用
aws s3 cp myfolder s3://mybucket/myfolder --recursive
将所有文件移动到S3存储桶中 - 我删除了我的临时卷和上面的所有文件
一切都是使用SSH完成的。不需要脚本或编程。
请记住,您需要使用sudo
才能获得执行许多操作的权限。
- 第一种解决方案:
- 使用s3fs在ec2上装载s3
- 将文件提取到装载点
- 第二种解决方案:
- 使用python及其aws库boto
- 使用CCD_ 6将一个文件提取到时间位置
- 并使用CCD_ 7将其上传到s3
- 然后删除临时文件
- 完成时转到2