我试图解决一个极其微不足道的问题,因为长,但没有运气。
我想删除一个文件从一个PHP Web服务器上传到AWS S3之后。 以下是具体步骤:
//Upload file to S3 using PHP SDK's S3Client::putObject method:
$result = $s3_client->putObject( array(
'Bucket' => AWS_BUCKET_NAME,
'Key' => $file_name,
'SourceFile' => $file_path,
'Metadata' => array(
'metadata_field' => 'metadata_value'
)
));
//Poll the object until it is accessible
$s3_client->waitUntil('ObjectExists', array(
'Bucket' => AWS_BUCKET_NAME,
'Key' => $file_name
));
//Delete the file
unlink( $file_path );
这些步骤的情况下,完美地工作,我上传一个小文件(〜500KB)。 但是, 如果我上传一个更大的文件(5MB-10MB),我收到以下错误 :
Warning: unlink(<Complete Path to File>): Permission denied in <Complete path to uploader.php> on line N
我的工作在Windows和试图对目录和文件提升用户权限。 (用chmod,CHOWN PHP命令,并确保该目录是可写的和可访问)
看来,AWS S3 PutObject方法不释放文件句柄(在只有大文件的情况下)。 我也尝试添加睡眠(),但没有运气!
此外,如果我跳过上传文件到S3(只是为了测试我的工作流程删除),该文件被没有任何问题删除。
请帮忙。!