Php 使用rename()重命名AmazonS3上的文件

Php 使用rename()重命名AmazonS3上的文件,php,Php,如何使用PHP重命名文件(在linux中)。 我正在使用重命名(oldfile,newfile),但不起作用 rename("s3://mydata/$md5_userid/temp_$id.html","s3://mydata/$md5_userid/$iRow_id.html"); 看起来您正在为AmazonS3使用 这取决于要实现的单个自定义包装器代码。如果您的包装器没有进行重命名,那么要么它使用的代码有缺陷,要么它没有实现该功能,要么没有报告它,要么您没有检查rename函数调用的返回

如何使用PHP重命名文件(在linux中)。 我正在使用重命名(oldfile,newfile),但不起作用

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

看起来您正在为AmazonS3使用

这取决于要实现的单个自定义包装器代码。如果您的包装器没有进行重命名,那么要么它使用的代码有缺陷,要么它没有实现该功能,要么没有报告它,要么您没有检查
rename
函数调用的返回代码,它返回false表示失败

您可能需要实际使用普通的S3API来执行文件重命名。如果函数实际返回true,您应该向提供流包装器库的人员提交一个bug

编辑:如果您按照评论中的建议使用PEAR的服务\u Amazon\u S3,则从第570行开始使用
重命名
方法


Edit2:进一步检查代码后,如果出现故障,您将看到流包装器发出的警告。也许您没有一直启动到
-1
错误报告功能?

您有权重命名文件吗?您确定第一个参数存在吗<代码>文件\u存在($path)==TRUE
?更新后:
s3://
不是真正的普通文件。我想您在AmazonS3中创建时使用的是?给定了bucket的ACL。我想重命名bucket中的文件。是的。我正在使用流包装器。你能给我代码吗(如何重命名bucket中的文件)@user,我不会“给你代码”--你要么放弃返回值,要么你自己的
rename
调用有错误。返回值是真还是假?如果返回false,则重命名在S3级别失败。如果返回true,则S3表示重命名有效。@Charles您提供的链接为broken@tq,修正了。令人恼火的是,他们没有将svn repo查看器重定向到github上的新规范文件位置。