2種類のファイル名を持つバケットがあります。
[Bucket]/[file]
[Bucket]/[folder]/[file]
たとえば、次のようになります。
MyBucket/bar
MyBucket/foo/bar
[Bucket]/[folder]/[file]
すべてのファイルの名前をファイルに変更したい[Bucket]/[file]
(したがって、ファイルを上書き/破棄したい[Bucket]/[file]
)。
前の例のように、私はなりたいですMyBucket/foo/bar
(MyBucket/bar
そしてオリジナルを上書き/ダスカードしますMyBucket/bar
)。
私は2つの方法を試しました:
- s3cmdのmoveコマンドの使用:
s3cmd mv s3://MyBucket/foo/bar s3://MyBucket/bar
- AmazonのSDKforphpの使用:
rename(s3://MyBucket/foo/bar, s3://MyBucket/bar)
どちらの方法も機能しているように見えますが、これを何千ものファイルのバッチプロセスとして実行する必要があることを考えると、
私の質問は次のとおりです。
- どちらの方法が好ましいですか?
- 他にもっと良い方法はありますか?
- 移動/名前変更の前に古いファイルを削除する必要がありますか?(それがなくても問題なく動作するようですが、関連するリスクを認識していない可能性があります)
ありがとうございました。