七牛云覆盖上传 php

时间:2024-10-19 22:06:50

使用七牛云过程中遇到了需要上传覆盖的情况,最终解决,分享给大家。

七牛云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 字段。