当前,我的S3存储桶包含文件。我想为S3上的每个文件创建一个文件夹。
当前->s3://<bucket>/test.txt
期望->s3://<bucket>/test/test.txt
如何使用EC2实例实现这一点?
S3没有"文件夹";实际上,对象名称中可能包含/
字符,这在某种程度上模仿了文件夹。只需将您的对象命名为test/<filename>
即可实现这一点。有关更多信息,请参阅S3文档。
至于从EC2进行操作,这与从其他任何地方进行操作没有什么不同(除了,在EC2中,您可能可以依赖IAM配置文件,而不是使用特别凭据(。如果你尝试过但失败了,也许可以发布一个包含更多细节的新问题。
如果您有Linux,您可以尝试以下操作:
aws s3 ls s3://bucket/ | while read date time size name; do aws s3 mv s3://bucket/${name} s3://bucket/`echo ${name%.*}`/${name}; done
它不依赖于EC2实例。您可以使用EC2实例或其他来源的aws-cli,并放置所需的路径,例如s3://test/test.txt。如果您愿意,您甚至可以更改要复制到s3 bucket中的文件的名称,甚至更改其扩展名。