開(kāi)發(fā)準(zhǔn)備
相關(guān)資源
cos php sdk v4 github項(xiàng)目
(本版本SDK基于JSON API封裝組成)
開(kāi)發(fā)環(huán)境
- 依賴環(huán)境:PHP 5.3.0 版本及以上
- 從控制臺(tái)獲取APP ID、SecretID、SecretKey,并修改 cos-php-sdk-v4/qcloudcos/conf.php 文件里的相關(guān)配置。
SDK 配置
下載 SDK 后,在使用 SDK 時(shí),加載 cos-php-sdk-v4/include.php 并設(shè)置全局的超時(shí)時(shí)間及COS所在的區(qū)域即可。
require('cos-php-sdk-v4/include.php');
use Qcloud\Cos\Api;
$config = array(
'app_id' => '',
'secret_id' => '',
'secret_key' => '',
'region' => 'gz',
'timeout' => 60
);
// 設(shè)置COS所在的區(qū)域,對(duì)應(yīng)關(guān)系如下:
// 華南 -> gz
// 華東 -> sh
// 華北 -> tj
$cosApi = new Api($config);
若需要支持 HTTPS ,修改 conf.php 中的 API_COSAPI_END_POINT 的值為如下:
const API_COSAPI_END_POINT = 'https://region.file.myqcloud.com/files/v2/';
生成簽名
多次有效簽名
方法原型
public function createReusableSignature($expiration, $bucket, $filepath);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| expiration |
long |
是 |
過(guò)期時(shí)間,Unix時(shí)間戳 |
| bucket |
String |
是 |
bucket 名稱 |
| filepath |
String |
否 |
文件路徑 |
示例
$auth = new Auth($appId = '',$secretId ='',$secretKey = '');
$expiration = time() + 60;
$bucket = 'testbucket';
$filepath = "/myFloder/myFile.rar";
$sign = $auth->createReusableSignature($expiration, $bucket, $filepath);
單次有效簽名
方法原型
public function createNonreusableSignature($bucket, $filepath);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucket |
String |
是 |
bucket 名稱 |
| filepath |
String |
是 |
文件路徑,以斜杠開(kāi)頭,例如 /filepath/filename,為文件在此 bucketname 下的全路徑 |
示例
$auth = new Auth($appId = '',$secretId ='',$secretKey = '');
$bucket = 'testbucket';
$filepath = "/myFloder/myFile.rar";
$sign = $auth->createNonreusableSignature($bucket, $filepath);
目錄操作
創(chuàng)建目錄
接口說(shuō)明:用于目錄的創(chuàng)建,可通過(guò)此接口在指定 bucket 下創(chuàng)建目錄。
方法原型
public function createFolder($bucketName, $path, $bizAttr = null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
目錄全路徑 |
| bizAttr |
String |
否 |
目錄屬性信息,業(yè)務(wù)自行維護(hù) |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
| data |
Array |
否 |
返回?cái)?shù)據(jù),請(qǐng)參考《Restful API 創(chuàng)建目錄》
|
示例
$bizAttr = "attr_folder";
$result = $cosApi->createFolder($bucketName, $path,$bizAttr)
目錄更新
接口說(shuō)明:用于目錄業(yè)務(wù)自定義屬性的更新,調(diào)用者可以通過(guò)此接口更新業(yè)務(wù)的自定義屬性字段。
方法原型
public function updateFolder($bucketName, $path, $bizAttr = null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
目錄路徑 |
| bizAttr |
String |
否 |
目錄屬性信息 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
示例
$bizAttr = "folder new attribute";
$result = $cosApi->updateFolder($bucketName, $path, $bizAttr)
目錄查詢
接口說(shuō)明:用于目錄屬性的查詢,調(diào)用者可以通過(guò)此接口查詢目錄的屬性。
原型方法
public function statFolder($bucketName, $path);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
目錄路徑 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
| data |
Array |
否 |
目錄屬性數(shù)據(jù),請(qǐng)參考《Restful API 目錄查詢》
|
示例
$result = $cosApi->statFolder($bucketName, $path);
刪除目錄
接口說(shuō)明:用于目錄的刪除,調(diào)用者可以通過(guò)此接口刪除空目錄,如果目錄中存在有效文件或目錄,將不能刪除。
方法原型
public function delFolder($bucketName, $path);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
目錄全路徑 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
示例
$result = $cosApi->delFolder($bucketName, $path);
列舉目錄中的文件和目錄
接口說(shuō)明:用于列舉目錄下文件和目錄,可以通過(guò)此接口查詢目錄下的文件和目錄屬性。
方法原型
public function listFolder($bucketName, $path, $num = 20, $pattern = 'eListBoth', $context = null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket名稱 |
| path |
String |
是 |
目錄的全路徑 |
| num |
int |
否 |
要查詢的目錄/文件數(shù)量 |
| context |
String |
否 |
透?jìng)髯侄?,查看第一?yè),則傳空字符串。若需要翻頁(yè),需要將前一頁(yè)返回值中的context透?jìng)鞯絽?shù)中。 |
| pattern |
String |
否 |
eListBoth:列舉文件和目錄;eListDirOnly:僅列舉目錄;eListFileOnly:僅列舉文件 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
API 錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
| data |
Array |
是 |
返回?cái)?shù)據(jù),請(qǐng)參考《Restful API 目錄列表》
|
示例
$result = $cosApi->listFolder($bucketName, $path, 20, 'eListBoth',0);
列舉目錄下指定前綴文件&目錄
接口說(shuō)明:用于列舉目錄下指定前綴的文件和目錄,可以通過(guò)此接口查詢目錄下的指定前綴的文件和目錄信息。
原型方法
public function prefixSearch($bucketName, $prefix, $num = 20, $pattern = 'eListBoth',
$context = null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket名稱,bucket創(chuàng)建參見(jiàn)創(chuàng)建Bucket
|
| prefix |
String |
是 |
列出含此前綴的所有文件(帶全路徑) |
| num |
int |
否 |
要查詢的目錄/文件數(shù)量 |
| context |
String |
否 |
透?jìng)髯侄?,查看第一?yè),則傳空字符串。若需要翻頁(yè),需要將前一頁(yè)返回值中的context透?jìng)鞯絽?shù)中。 |
| pattern |
String |
否 |
eListBoth:列舉文件和目錄;eListDirOnly:僅列舉目錄;eListFileOnly:僅列舉文件 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
API 錯(cuò)誤信息 |
| data |
Array |
是 |
返回?cái)?shù)據(jù),請(qǐng)參考《Restful API 目錄列表》
|
示例
$prefix= "/myFolder/2015-";
$result = $cosApi->prefixSearch($bucketName, $prefix, 20, 'eListBoth',0);
文件操作
文件上傳
接口說(shuō)明:文件上傳的統(tǒng)一接口,對(duì)于大于20M的文件,內(nèi)部會(huì)通過(guò)多次分片的方式進(jìn)行文件上傳。
原型方法
public function upload($bucketName, $srcPath, $dstPath,
$bizAttr = null, $slicesize = null, $insertOnly = null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket名稱,bucket創(chuàng)建參見(jiàn)創(chuàng)建Bucket
|
| srcPath |
String |
是 |
本地要上傳文件的全路徑 |
| dstPath |
String |
是 |
文件在COS服務(wù)端的全路徑,不包括/appid/bucketname |
| bizAttr |
String |
否 |
文件屬性,業(yè)務(wù)端維護(hù) |
| slicesize |
int |
否 |
文件分片大小,當(dāng)文件大于20M時(shí),SDK內(nèi)部會(huì)通過(guò)多次分片的方式進(jìn)行上傳,默認(rèn)分片大小為1M,支持的最大分片大小為3M |
| insertOnly |
int |
否 |
同名文件是否進(jìn)行覆蓋。0:覆蓋;1:不覆蓋 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
| data |
Array |
是 |
返回?cái)?shù)據(jù),請(qǐng)參考《Restful API 創(chuàng)建文件》
|
示例
$dstPath = "/myFolder/test.mp4";
$bizAttr = "";
$insertOnly = 0;
$sliceSize = 3 * 1024 * 1024;
$result = $cosApi->upload($bucketName,$srcPath,$dstPath ,"biz_attr");
文件屬性更新
接口說(shuō)明:用于目錄業(yè)務(wù)自定義屬性的更新,可以通過(guò)此接口更新業(yè)務(wù)的自定義屬性字段。
原型方法
public function update($bucketName, $path,
$bizAttr = null, $authority=null,$customer_headers_array=null);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
文件在文件服務(wù)端的全路徑,不包括/appid/bucketname |
| bizAttr |
String |
否 |
待更新的文件屬性信息 |
| authority |
String |
否 |
eInvalid(繼承Bucket的讀寫(xiě)權(quán)限);eWRPrivate(私有讀寫(xiě));eWPrivateRPublic(公有讀私有寫(xiě)) |
| customer_headers_array |
String |
否 |
用戶自定義頭域??蓴y帶參數(shù)名分別為:'Cache-Control'、'Content-Type'、'Content-Disposition'、'Content-Language'、以及以'x-cos-meta-'為前綴的參數(shù)名稱 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
示例
$bizAttr = "";
$authority = "eWPrivateRPublic";
$customer_headers_array = array(
'Cache-Control' => "no",
'Content-Language' => "ch",
);
$result = $cosApi->update($bucketName, $dstPath, $bizAttr,$authority, $customer_headers_array);
文件查詢
接口說(shuō)明:用于文件的查詢,調(diào)用者可以通過(guò)此接口查詢文件的各項(xiàng)屬性信息。
原型方法
public function stat($bucketName, $path);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
文件在文件服務(wù)端的全路徑 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
| data |
Array |
是 |
文件屬性數(shù)據(jù),請(qǐng)參考《Restful API 文件查詢》
|
示例
$result = $cosApi->stat($bucketName, $path);
文件刪除
接口說(shuō)明:用于文件的刪除,調(diào)用者可以通過(guò)此接口刪除已經(jīng)上傳的文件。
原型方法
public function delFile($bucketName, $path);
參數(shù)說(shuō)明
| 參數(shù)名 |
類型 |
必填 |
參數(shù)描述 |
| bucketName |
String |
是 |
bucket 名稱 |
| path |
String |
是 |
文件的全路徑 |
返回值說(shuō)明(json)
| 參數(shù)名 |
類型 |
必帶 |
參數(shù)描述 |
| code |
Int |
是 |
錯(cuò)誤碼,成功時(shí)為0 |
| message |
String |
是 |
錯(cuò)誤信息 |
示例
$result = $cosApi->delFile($bucketName, $path);