问题描述
所以我的 s3 存储桶上有 1000 个文件。但是,文件的名称包含空格。我想使用 boto python 以编程方式用“_”替换空格。我如何实现这一目标?
谢谢。
文件名快照:
解决方法
无法重命名 Amazon S3 中的对象。
相反,您需要调用 CopyObject()
来复制对象,然后调用 DeleteObject()
来删除原始对象。
或者,这是我使用的一种作弊方法:
- 我用文件名创建了一个 Excel 电子表格
- 然后,在 B 列中,我创建了一个公式来将空格转换为下划线,因此它包含所需的名称
- 在 C 列中,我编写了一个重命名对象的命令,如下所示:
="aws s3 mv 's3://bucketname/"&A1&"' s3://bucketname/"&B1
- 通过将命令粘贴到终端窗口来测试该命令
- 如果可行,请使用向下复制为所有文件创建公式
- 复制该列,将其粘贴到
.sh
文件中,然后运行该文件(最好在 Amazon EC2 实例上运行以减少网络延迟)
AWS CLI aws s3 mv
命令将调用 CopyObject()
和 DeleteObject()
。