我有一个包含两种文件名的存储桶:
[Bucket]/[file]
[Bucket]/[folder]/[file]
例如,我可以:
MyBucket/bar
MyBucket/foo/bar
我想将所有[Bucket]/[folder]/[file]
文件重命名为[Bucket]/[file]
文件(从而覆盖/丢弃[Bucket]/[file]
文件)。
所以和前面的例子一样,我想MyBucket/foo/bar
成为MyBucket/bar
(并覆盖/删除原来的MyBucket/bar
)。
我尝试了两种方法:
- 使用 s3cmd 的 move 命令:
s3cmd mv s3://MyBucket/foo/bar s3://MyBucket/bar
- 使用亚马逊的 php 开发工具包:
rename(s3://MyBucket/foo/bar, s3://MyBucket/bar)
这两种方法似乎都有效,但是 - 考虑到我必须对数千个文件进行批处理,
我的问题是:
- 首选哪种方法?
- 还有其他更好的方法吗?
- 我必须在移动/重命名之前删除旧文件吗?(没有它似乎可以正常工作,但我可能不知道所涉及的风险)
谢谢你。