【问题标题】:Amazon S3 - How to recursively rename files?Amazon S3 - 如何递归重命名文件?
【发布时间】:2020-06-05 10:42:22
【问题描述】:

我正在尝试通过我的 node.js 后端中的 s3.getObject() 方法获取我的文件。

问题是,在将文件上传到我的存储桶后,我未能替换特殊字符、破折号和空格。因此,任何具有Key 值的文件(例如,具有10th Anniversary Party (Part 1) 1-23-04 值的Key 具有10th+Anniversary+Party+(Part+1)+1-23-04 的端点)。

在尝试对 URI 进行编码以进行获取时,这会变得很麻烦。我想用一个简单的下划线替换所有破折号、空格和特殊字符。我已经看到了一些使用aws-cli 的可能约定,但是我不确定最好的命令是什么。任何建议将不胜感激。

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 aws-cli


    【解决方案1】:

    你可以编写一个程序:

    • 列出存储桶的内容
    • 调用CopyObject()将对象复制到新的Key
    • 调用DeleteObject()删除之前的副本

    或者,您可以利用 AWS CLI 提供的 aws s3 mv 命令,该命令将为您复制 + 删除。

    我经常简单地创建一个包含现有名称的 Excel 电子表格,以及一个用于确定我想要的名称的公式。然后,我创建第三列:

    aws s3 mv [Column 1] [Column 2]
    

    在行上使用 Copy Down 来获取所有 mv 命令。然后,复制命令列,将它们粘贴到命令行中,它将重命名 Amazon S3 中的所有对象! (先用1-2行测试,以防公式有误。)

    这可能看起来很原始,但它是一种非常快速的更改方法。

    【讨论】:

    • 感谢您的帮助,约翰。我可以通过一个单独的 node.js 文件来解决这个问题,方法是复制 s3 上的每个对象,重命名它,然后删除前一个对象。
    猜你喜欢
    • 1970-01-01
    • 2015-02-07
    • 2018-11-09
    • 2020-11-23
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    相关资源
    最近更新 更多