php使用七牛云上传图片,覆盖云上已有文件:

使用七牛云存储提供的PHP SDK,可以非常方便的将本地文件上传到七牛,但默认情况下,上传的文件不会覆盖旧文件,也就是说,之前上传了一个名为photo.jpg的文件,再上传同名文件photo.jpg时就会失败。

图片上传报错: 错误码 42900007

?[37;41m  Client error: `PUT http://yun_url/dir/650bc1bab567fc47efce824b57b78b5a.jpg` resulted in a `429 Too Many Requests` response:  ?[39;49m
?[37;41m  {"msg":"concurrent put or delete","code":42900007,"id":"9d6dba0dc6362ffe5f4aa6ae5b739799"}  

先来看看七牛API上传文件的代码:

<?php
	require_once( 'php-sdk-master/autoload.php' );
	use Qiniu\Auth;
	use Qiniu\Storage\UploadManager;
	$path = 'img/photo.jpg';
	$key = 'photo.jpg';
	$auth = new Auth( 'AccessKey', 'SecretKey' );
	$token = $auth->uploadToken( 'Bucket Name', $key );
	$upManager = new UploadManager();
	$upManager->putFile( $token, $key, $path );
?>

要覆盖旧文件,关键在于uploadToken的第二个参数,必须指明在七牛上保存的文件名。

在本例中,$key为在七牛云存储保存的文件名,而$path为是本地文件的完整路径。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐