使用七牛云过程中遇到了需要上传覆盖的情况,最终解决,分享给大家。
七牛云sdk上传示例中是这样写的
<?php require_once 'path_to_sdk/vendor/autoload.php'; // 引入鉴权类 use Qiniu\Auth; // 引入上传类 use Qiniu\Storage\UploadManager; // 需要填写你的 Access Key 和 Secret Key $accessKey = 'Access_Key'; $secretKey = 'Secret_Key'; // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 要上传的空间 $bucket = 'Bucket_Name'; // 生成上传 Token $token = $auth->uploadToken($bucket); // 要上传文件的本地路径 $filePath = './php-logo.png'; // 上传到七牛后保存的文件名 $key = 'my-php-logo.png'; // 初始化 UploadManager 对象并进行文件的上传 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); echo "\n====> putFile result: \n"; if ($err !== null) { var_dump($err); } else { var_dump($ret); }
$token = $auth->uploadToken($bucket);
这个uploadToken方法是一个重载方法,第二个参数传入七牛的文件key,这样就可以实现文件上传覆盖。
参考:http://developer.qiniu.com/article/developer/security/put-policy.html 里的 scope 字段。