2011-04-25 104 views
-1

如何使用PHP(在Linux中)重命名該文件。 我正在使用rename(oldfile,newfile),但無法正常工作。使用rename()重命名Amazon S3上的文件

rename("s3://mydata/$md5_userid/temp_$id.html","s3://mydata/$md5_userid/$iRow_id.html"); 
+0

請發佈您的代碼 – JohnP 2011-04-25 05:42:29

+0

您是否有權限重命名文件? – 2011-04-25 05:43:00

+2

定義*「不工作」*。 – deceze 2011-04-25 05:43:14

回答

2

看起來您對Amazon S3使用stream wrapper

這是由個人,自定義包裝代碼來實現rename functionality。如果你的包裝器沒有進行重命名,那麼它使用的代碼是越野車,或者它沒有實現該功能,或者沒有報告它,你沒有檢查rename函數的返回碼呼叫,並且它表示失敗返回false。

您可能需要實際使用正常的 S3 API來執行文件重命名。如果函數實際返回true,則應該向提供流包裝庫的人員提交錯誤。

編輯:如果您使用 PEAR的Services_Amazon_S3作爲意見建議,然後the stream wrapper it provides does do rename使用rename方法EDIT2起價約爲線570

:進一步檢查代碼,如果有失敗後,您將看到警告從流封裝器發出。也許你沒有error_reporting一路搖到-1

+0

是的,我使用流包裝器。你可以給我的代碼(如何重命名桶中的文件) – user655334 2011-04-25 05:52:35

+0

@user,我不會「給你的代碼」 - 你要麼放棄返回值,要麼在你自己的'rename'調用中有錯誤。返回值是真是假?如果它返回false,那麼在S3級別重命名失敗。如果它恢復正常,那麼S3說重命名工作。 – Charles 2011-04-25 05:55:43

+0

@Charles您提供的鏈接已損壞 – 2012-09-25 14:00:07

相關問題