【问题标题】:Create Folder of Files on S3在 S3 上创建文件文件夹
【发布时间】:2021-01-13 19:46:16
【问题描述】:

目前,我的 S3 存储桶包含文件。我想为 S3 上的每个文件创建一个文件夹。

当前 -> s3://<bucket>/test.txt

期待 -> s3://<bucket>/test/test.txt

如何使用 EC2 实例实现这一点?

【问题讨论】:

  • 您能说明一下您的要求吗?您是希望在上传对象时将对象放入文件夹中,还是要将现有对象移至文件夹中?另外,请告诉我们您如何将文件上传到 S3,因为如果需要,您可以立即将它们放入此类文件夹中。哦,到目前为止,您尝试过什么? (请编辑您的问题以澄清这些细节,而不是在评论中回答。)

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


【解决方案1】:

S3 确实没有“文件夹”,对象名称中可能包含/ 字符,并且在某种程度上模拟了文件夹。只需将您的对象命名为test/<filename> 即可实现这一目标。请参阅S3 docs 了解更多信息。

至于从 EC2 执行此操作,它与从其他任何位置执行此操作没有什么不同(也许在 EC2 中,您可以依赖 IAM 配置文件而不是使用临时凭证)。如果您尝试过但失败了,可以发布一个包含更多详细信息的新问题。

【讨论】:

  • 目前我的文件格式为 -> s3:///test.txt,我想在 s3:///test/test.txt 中转换它
  • @MihirGarg 查找有关如何使用 S3 API 或您可用的任何工具在 S3 中重命名对象的文档。
【解决方案2】:

如果您有 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

【讨论】:

    【解决方案3】:

    它不依赖于 EC2 实例。对于您的案例 s3:///test/test.txt,您可以使用来自 EC2 实例或其他来源的 aws cli 来放置所需的路径。如果需要,您甚至可以更改要复制到 s3 存储桶中的文件的名称,甚至可以更改其扩展名。

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 2018-08-17
      • 2011-07-31
      相关资源
      最近更新 更多