cos-php-sdk-v4文档

开发准备

相关资源

cos php sdk v4 github项目
(本版本SDK基于JSON API封装组成)

开发环境

  1. 依赖环境:PHP 5.3.0 版本及以上
  2. 从控制台获取APP ID、SecretID、SecretKey,并修改 cos-php-sdk-v4/qcloudcos/conf.php 文件里的相关配置。

SDK 配置

下载 SDK 后,在使用 SDK 时,加载 cos-php-sdk-v4/include.php 并设置全局的超时时间及COS所在的区域即可。

require('cos-php-sdk-v4/include.php'); 
use Qcloud\Cos\Api;

$config = array(
    'app_id' => '',
    'secret_id' => '',
    'secret_key' => '',
    'region' => 'gz',
    'timeout' => 60
);
// 设置COS所在的区域,对应关系如下:
//     华南  -> 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);

参数说明

参数名 类型 必填 参数描述
expiration long 过期时间,Unix时间戳
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);

参数说明

参数名 类型 必填 参数描述
bucket String bucket 名称
filepath String 文件路径,以斜杠开头,例如 /filepath/filename,为文件在此 bucketname 下的全路径

示例

$auth = new Auth($appId = '',$secretId ='',$secretKey = '');
$bucket = 'testbucket';
$filepath = "/myFloder/myFile.rar";
$sign = $auth->createNonreusableSignature($bucket, $filepath);

目录操作

创建目录

接口说明:用于目录的创建,可通过此接口在指定 bucket 下创建目录。

方法原型

public function createFolder($bucketName, $path, $bizAttr = null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 目录全路径
bizAttr String 目录属性信息,业务自行维护

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息
data Array 返回数据,请参考《Restful API 创建目录》

示例

$bizAttr = "attr_folder";
$result  = $cosApi->createFolder($bucketName, $path,$bizAttr)

目录更新

接口说明:用于目录业务自定义属性的更新,调用者可以通过此接口更新业务的自定义属性字段。

方法原型

public function updateFolder($bucketName, $path, $bizAttr = null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 目录路径
bizAttr String 目录属性信息

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息

示例

$bizAttr = "folder new attribute";
$result  = $cosApi->updateFolder($bucketName, $path, $bizAttr)

目录查询

接口说明:用于目录属性的查询,调用者可以通过此接口查询目录的属性。

原型方法

public function statFolder($bucketName, $path);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 目录路径

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息
data Array 目录属性数据,请参考《Restful API 目录查询》

示例

$result = $cosApi->statFolder($bucketName, $path);

删除目录

接口说明:用于目录的删除,调用者可以通过此接口删除空目录,如果目录中存在有效文件或目录,将不能删除。

方法原型

public function delFolder($bucketName, $path);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 目录全路径

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息

示例

$result = $cosApi->delFolder($bucketName, $path);

列举目录中的文件和目录

接口说明:用于列举目录下文件和目录,可以通过此接口查询目录下的文件和目录属性。

方法原型

public function listFolder($bucketName, $path, $num = 20, $pattern = 'eListBoth', $context = null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket名称
path String 目录的全路径
num int 要查询的目录/文件数量
context String 透传字段,查看第一页,则传空字符串。若需要翻页,需要将前一页返回值中的context透传到参数中。
pattern String eListBoth:列举文件和目录;eListDirOnly:仅列举目录;eListFileOnly:仅列举文件

返回值说明(json)

参数名 类型 必带 参数描述
code Int API 错误码,成功时为0
message String 错误信息
data Array 返回数据,请参考《Restful API 目录列表》

示例

$result = $cosApi->listFolder($bucketName, $path, 20, 'eListBoth',0);

列举目录下指定前缀文件&目录

接口说明:用于列举目录下指定前缀的文件和目录,可以通过此接口查询目录下的指定前缀的文件和目录信息。

原型方法

public function prefixSearch($bucketName, $prefix, $num = 20, $pattern = 'eListBoth', 
$context = null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket名称,bucket创建参见创建Bucket
prefix String 列出含此前缀的所有文件(带全路径)
num int 要查询的目录/文件数量
context String 透传字段,查看第一页,则传空字符串。若需要翻页,需要将前一页返回值中的context透传到参数中。
pattern String eListBoth:列举文件和目录;eListDirOnly:仅列举目录;eListFileOnly:仅列举文件

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String API 错误信息
data Array 返回数据,请参考《Restful API 目录列表》

示例

$prefix= "/myFolder/2015-";
$result = $cosApi->prefixSearch($bucketName, $prefix, 20, 'eListBoth',0);

文件操作

文件上传

接口说明:文件上传的统一接口,对于大于20M的文件,内部会通过多次分片的方式进行文件上传。

原型方法

public function upload($bucketName, $srcPath, $dstPath, 
               $bizAttr = null, $slicesize = null, $insertOnly = null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket名称,bucket创建参见创建Bucket
srcPath String 本地要上传文件的全路径
dstPath String 文件在COS服务端的全路径,不包括/appid/bucketname
bizAttr String 文件属性,业务端维护
slicesize int 文件分片大小,当文件大于20M时,SDK内部会通过多次分片的方式进行上传,默认分片大小为1M,支持的最大分片大小为3M
insertOnly int 同名文件是否进行覆盖。0:覆盖;1:不覆盖

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息
data Array 返回数据,请参考《Restful API 创建文件》

示例

$dstPath = "/myFolder/test.mp4";
$bizAttr = "";
$insertOnly = 0;
$sliceSize = 3 * 1024 * 1024;
$result = $cosApi->upload($bucketName,$srcPath,$dstPath ,"biz_attr");

文件属性更新

接口说明:用于目录业务自定义属性的更新,可以通过此接口更新业务的自定义属性字段。

原型方法

public function update($bucketName, $path, 
                  $bizAttr = null, $authority=null,$customer_headers_array=null);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 文件在文件服务端的全路径,不包括/appid/bucketname
bizAttr String 待更新的文件属性信息
authority String eInvalid(继承Bucket的读写权限);eWRPrivate(私有读写);eWPrivateRPublic(公有读私有写)
customer_headers_array String 用户自定义头域。可携带参数名分别为:'Cache-Control'、'Content-Type'、'Content-Disposition'、'Content-Language'、以及以'x-cos-meta-'为前缀的参数名称

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息

示例

$bizAttr = "";
$authority = "eWPrivateRPublic";
$customer_headers_array = array(
    'Cache-Control' => "no",
    'Content-Language' => "ch",
);
$result = $cosApi->update($bucketName, $dstPath, $bizAttr,$authority, $customer_headers_array);

文件查询

接口说明:用于文件的查询,调用者可以通过此接口查询文件的各项属性信息。

原型方法

 public function stat($bucketName, $path); 

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 文件在文件服务端的全路径

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息
data Array 文件属性数据,请参考《Restful API 文件查询》

示例

$result = $cosApi->stat($bucketName, $path);

文件删除

接口说明:用于文件的删除,调用者可以通过此接口删除已经上传的文件。

原型方法

public function delFile($bucketName, $path);

参数说明

参数名 类型 必填 参数描述
bucketName String bucket 名称
path String 文件的全路径

返回值说明(json)

参数名 类型 必带 参数描述
code Int 错误码,成功时为0
message String 错误信息

示例

$result = $cosApi->delFile($bucketName, $path);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,662评论 0 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,472评论 25 707
  • 9月12日,《奇葩说》的辩题是:“高学历女生做全职太太是不是一种浪费?” 这个题中有两个陷阱,“女性”、“全职太太...
    说啥看心情阅读 1,971评论 5 21
  • 我们懂得,没有谁的苦难独一无二,没有谁的生活云淡风轻。但知道这一点,并不意味着,我们就得用鸡汤文里面的标准,...
    旸科阅读 400评论 2 1