在Amazon S3上使用rename()重命名文件


Renaming file on Amazon S3 using rename()

如何使用PHP重命名文件(linux)。我正在使用重命名(旧文件,新文件),但不工作。

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

看起来您正在使用Amazon S3的流包装器

实现重命名功能取决于单独的、自定义的包装器代码。如果你的包装器没有做重命名,那么要么它使用的代码是有bug的,要么它没有实现该功能,要么没有报告它,你没有检查从rename函数调用的返回代码,它返回false表示失败。

您可能需要实际使用normal S3 API来执行文件重命名。如果该函数实际上返回true,则应该向提供流包装器库的人员提交错误。

编辑:如果你使用PEAR的Services_Amazon_S3在评论中建议的,那么它提供的流包装器rename使用rename方法从大约第570行开始。

Edit2:在进一步检查代码之后,如果失败,您将看到从流包装器发出的警告。也许你没有把error_reporting一直调到-1 ?