我有二種文件名的水桶:Amazon S3的重命名和覆蓋文件,建議和風險
[Bucket]/[file]
[Bucket]/[folder]/[file]
例如,我可以有:
MyBucket/bar
MyBucket/foo/bar
我想所有的[Bucket]/[folder]/[file]
文件重命名爲[Bucket]/[file]
文件(從而覆蓋/丟棄[Bucket]/[file]
文件)。
所以和前面的例子一樣,我想MyBucket/foo/bar
變成MyBucket/bar
(並且覆蓋/ duscard原來的MyBucket/bar
)。
我嘗試了兩種方法:
- 使用s3cmd的移動命令:
s3cmd mv s3://MyBucket/foo/bar s3://MyBucket/bar
- 使用Amazon的SDK爲PHP:
rename(s3://MyBucket/foo/bar, s3://MyBucket/bar)
這兩種方法似乎工作,但是 - 考慮到我需要做的這作爲批量處理上千個文件,
我的問題是:
- 哪種方法是首選?
- 還有其他更好的方法嗎?
- 我必須在移動/重命名之前刪除舊文件嗎?(它似乎沒有它工作正常,但我可能不知道涉及的風險)
謝謝。
您好!我也試圖移動和覆蓋文件夾(及其駐留文件)在一個桶中,我注意到你有:重命名(s3:// MyBucket/foo/bar,s3:// MyBucket/bar)。這在PHP中如何工作?或者,這條線是否僅僅在EC2上起作用? – Schodemeiss
@AndyBarlow,我寫了一篇關於它的文章:http://eyalarubas.com/log/2012/10/16/using-aws-s3-stream-wrapper-for-php/。如果您有更多問題,請與我聯繫。 – EyalAr