putBucket getService deleteBucket inspectBucket setBucketLabel queryBucketLabel setManagement beginUpload abortUpload putBucket getBucket getObjec GenerateLinks deleteObject deleteMultipleObject copyObject queryObjectMetadata
ACTencentCOS插件封装了腾讯对象储存
###关于腾讯对象储存 对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。
COS 通过控制台、API、SDK 和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理。通过 COS 可以进行任意格式文件的上传、下载和管理。腾讯云提供了直观的 Web 管理界面,同时遍布全国范围的 CDN 节点可以对文件下载进行加速。
使用此插件之前必须先配置 config 文件,配置方法如下:
<feature name="ACTencentCOS">
<param name="appID" value="" />
<param name="secretId" value="" />
<param name="secretKey" value="" />
<param name="regionName" value="" />
<param name="serviceName" value="" />
<param name="isCAM" value='0' />
<param name="startDate" value="" />
<param name="experationDate" value="" />
<param name="token" value="" />
<param name="backgroundEnable" value='0' />
<param name="backgroundIdentifier" value="" />
<param name="useHTTPS" value='0' />
<param name="isCOSServer" value='0' />
<param name="isCustomeCOSServer" value='0' />
<param name="customerKey" value="" />
</feature>
appID:(必须配置)APPID 如何获取
secretId:(必须配置)开发者拥有的项目身份识别 ID,用以身份认证 如何获取
secretKey:(必须配置)开发者拥有的项目身份密钥。可以为永久密钥,也可以是临时密钥(参考CAM系统) 如何获取
regionName:(必须配置)服务地域名称,可用的服务地域名称请查看官网中提供的地域,这里填入官网里提供的地域简称,例如ap-beijing-1等
serviceName:(可选项)服务的基础名称, 默认值为: myqcloud.com(仅iOS支持)
isCAM:(可选项)是否使用CAM系统实现临时签名;0:否 1:是;默认:0
startDate:(可选项)签名有效期的起始时间(时间戳)。默认是设备的本地时间,如果传入起始时间,那么将以起始时间去计算签名,当您使用了CAM系统获取临时密钥的时候,需要设置该值,永久密钥设置该值无效
experationDate:(可选项)签名有效期截止的时间(时间戳),没有设置的话,默认是起始时间加十分钟,当您使用了CAM系统获取临时密钥的时候,需要设置该值,永久密钥设置该值无效
token:(可选项)当您使用了CAM系统获取临时密钥的时候,此值为必填项,代表回话的ID,永久密钥设置该值无效
backgroundEnable:(可选项)是否开启了后台传输;0:否 1:是;默认:0(仅iOS支持,1.0.4版本以后不再支持)
backgroundIdentifier:(可选项)后台传输的标识(仅iOS支持,1.0.4版本以后不再支持)
useHTTPS:(可选项)SDK是否支持https请求;0:否 1:是;默认:0
isCOSServer:(可选项)是否使用cos托管加密密钥的服务端加密(SSE-COS)保护数据;0:否 1:是;默认:0(仅iOS支持)
isCustomeCOSServer:(可选项)是否使用客户提供的加密密钥的服务器端加密 (SSE-C)保护数据;isCustomeCOSServer优先级高于isCOSServer;0:否 1:是;默认:0(仅iOS支持)
customerKey:(可选项)用户提供的密钥,传入一个32字节的字符串,支持数字、字母、字符的组合,不支持中文;注意:useHTTPS和isCustomeCOSServer必须为1(仅iOS支持)
返回错误码说明
当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。返回错误码(封装在返回的error里)主要包括两类:设备本身因为网络原因等返回的错误码,以及 COS 返回的错误码。
创建存储桶
putBucket({params}, callback(ret, err))
bucket:
accessControlList:
grantRead:
grantWrite:
grantFullControl
grantReadAccount:
['','']
grantWriteAccount:
['','']
grantFullAccount:
['','']
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.putBucket({
bucket:'',
grantFullControl:'id=\"qcs::cam::uin/1234560608:uin/1234560608\"'
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
用于查询指定账号下的存储桶列表
getService(callback(ret, err))
ret:
{
status:true, //布尔类型;是否成功
displayName:'', //字符类型;持有者的名称
identifier:'', //字符类型;持有者 ID
buckets:[{
name:'', //字符类型;存储桶名称
location:'', //字符类型;存储桶所在区域
createDate:'', //字符类型;存储桶创建时间
}]
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.getService(function(ret,err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
删除存储桶
注意:删除存储桶前,请确保存储桶内的数据和未完成上传的分块数据已全部清空,否则会无法删除存储桶
deleteBucket({param},callback(ret))
bucket:
ret:
{
status:true
msg:"删除成功"
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000"
}
ACTencentCOS.deleteBucket(param,function(ret){
alert(JSON.stringify(ret))
});
iOS、Android系统
可提供的1.0.0及更高版本
确认该存储桶是否存在,是否有权限访问
inspectBucket({param},callback(ret))
bucket:
ret:
{
status:true
code:"" //数字类型;取值范围:
//200(存储桶存在且有读取权限)
//403(无存储桶读取权限)
//404(存储桶不存在)
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000"
}
ACTencentCOS.inspectBucket(param,function(ret){
alert(JSON.stringify(ret))
})
iOS、Android系统
可提供的1.0.0及更高版本
为已存在的存储桶设置标签
setBucketLabel({param},callback(ret))
bucket:
key:
value:
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000",
"key":"myKey",
"value":"myValue"
}
ACTencentCOS.setBucketLabel(param);
iOS、Android系统
可提供的1.0.0及更高版本
查询指定存储桶下已有的存储桶标签
queryBucketLabel({param},callback(ret))
bucket:
{
"status":true
"tag":"" //字符串类型;存储桶标签地址
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000"
}
ACTencentCOS.queryBucketLabel(param,function(ret){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
为源存储桶开启日志记录,将源存储桶的访问日志保存到指定的目标存储桶中。
注意:使用日志记录功能前,需要在控制台中开启目标存储桶的【日志管理】-【日志存储】功能,启用日志管理后,COS的所有访问请求信息都将以日志的形式,以5分钟为单位保存至目标存储桶中。
设置开启日志记录后,可以通过getBucket方法获取。
setManagement({param},callback(ret))
srcBucket:
targetBucket:
storagePath:
ret:
{
"status":true
"code":"" //数字类型
//200(日志设置成功)
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"srcBucket":"srcbucket-1250000000",
"targetBucket":"targetbucket-1250000000",
"storagePath":"cos-access-log/"
}
ACTencentCOS.setManagement(param,function(ret){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
上传文件
beginUpload({params}, callback(ret, err))
path:
bucket:
object:
ret:
{
eventType: '', //字符串类型;回调事件状态,取值范围如下:
//finish:上传完成事件回调
//progress:上传进度事件回调
status:true, //布尔类型;是否上传成功
totalBytesSent:0, //数字类型;已经发送了多少字节
totalBytesExpectedToSend:0, //数字类型;文件总大小(字节)
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.beginUpload({
path:'',
bucket:'',
object:''
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
取消上传
abortUpload({params},callback(ret, err))
object:
ret:
{
status:true, //布尔类型;是否取消成功
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.abortUpload({
object:''
},function(ret,err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
列举存储桶内的内容
getBucket({params}, callback(ret, err))
bucket:
prefix:
delimiter:
encodingType:
marker:
maxKeys:
ret:
{
status:true, //布尔类型;是否成功
bucket:{ //json对象;储桶内的内容
"name": "rickenwang-guagnzhou-1258479375",
"delimiter": "",
"encodingType": "",
"prefix": "",
"marker": "",
"nextMarker": "",
"maxKeys": 1000,
"isTruncated": false,
"CommonPrefixes": [{"prefix":""}],
"contentList": [{
"size": 20480085,
"key": "storage\/emulated\/0\/Download\/2b7912be0fa2b5c9ab9f286089194c5c-1.apk",
"lastModified": "2019-01-16T11:03:28.000Z",
"eTag": "\"9ce2069937f3c74d6d0b3106df079349-19\"",
"storageClass": "STANDARD"
}, {
"size": 20480085,
"key": "storage\/emulated\/0\/Download\/2b7912be0fa2b5c9ab9f286089194c5c-1.apk",
"lastModified": "2019-01-16T11:03:28.000Z",
"eTag": "\"9ce2069937f3c74d6d0b3106df079349-19\"",
"storageClass": "STANDARD"
}, {
"size": 20480085,
"key": "storage\/emulated\/0\/Download\/2b7912be0fa2b5c9ab9f286089194c5c-1.apk",
"lastModified": "2019-01-16T11:03:28.000Z",
"eTag": "\"9ce2069937f3c74d6d0b3106df079349-19\"",
"storageClass": "STANDARD"
}, {
"size": 20480085,
"key": "storage\/emulated\/0\/Download\/2b7912be0fa2b5c9ab9f286089194c5c-1.apk",
"lastModified": "2019-01-16T11:03:28.000Z",
"eTag": "\"9ce2069937f3c74d6d0b3106df079349-19\"",
"storageClass": "STANDARD"
}]
}
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.getBucket({
bucket:''
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
下载对象文件
getObject({params}, callback(ret, err))
bucket:
object:
savePath:
localFileName:
ret:
{
eventType: '', //字符串类型;回调事件状态,取值范围如下:
//finish:下载完成事件回调
//progress:下载进度事件回调
status:true, //布尔类型;是否下载成功
totalBytesDownload:0, //数字类型;已经下载了多少字节
totalBytesExpectedToDownload:0, //数字类型;文件总大小(字节)
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.getObject({
bucket:'',
object:''
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
生成预签名下载链接
GenerateLinks({param},callback(ret))
bucket:
cosPath
{
"status":true //布尔类型
"downloadUrl":"" //字符串类型。下载链接
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000",
"cosPath":"1"
}
ACTencentCOS.GenerateLinks(param,function(ret){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
删除单个对象
deleteObject({params}, callback(ret, err))
bucket:
object:
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.deleteObject({
bucket:'',
object:'',
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
删除多个对象
deleteMultipleObject({params}, callback(ret, err))
bucket:
deleteObjects:
ret:
{
status:true, //布尔类型;是否成功
}
err:
{
code:200, //数字类型,错误码
msg:'' //错误信息
}
var ACTencentCOS= api.require('ACTencentCOS');
ACTencentCOS.deleteMultipleObject({
bucket:'',
deleteObjects:[],
},function(ret, err){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
复制文件到目标存储桶
copyObject({param},callback(ret))
sourceAppid:
sourceBucket:
sourceRegion:
sourceCosPath:
targetBucket:
targetCosPath:
{
status:true //布尔类型
code:"" //数字类型;
//200(复制成功)
}
var ACTencentCOS= api.require('ACTencentCOS');
var param = {
"sourceAppid":"您申请的APPID",
"sourceBucket":"example",
"sourceRegion":"ap-beijing",
"sourceCosPath":"源存储桶内的对象键",
"targetBucket":"target-1250000000",
"targetCosPath":"目标存储桶内的对象键"
}
ACTencentCOS.copyObject(param,function(ret){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
查询对象元数据
queryObjectMetadata({param},callback(ret))
bucket:
cosPath
{
status:true
code:""
{
accept-ranges=[bytes]
connection=[keep-alive]
content-length=[73928]
content-type=[image/png]
date=[Thu, 14 Jul 2022 09:38:46 GMT]
etag=["cbb372bec271e34270da0da932a10182"]
last-modified=[Wed, 13 Jul 2022 05:42:12 GMT]
server=[tencent-cos]
x-cos-hash-crc64ecma=[3941368982471181329]
x-cos-request-id=[NjJjZmU0MjZfOTI0ZTQ0MGJfMWNkMmNfY2RiZGVkMw==]
}
}
var ACTencentCOS = api.require('ACTencentCOS');
var param = {
"bucket":"examplebucket-1250000000",
"cosPath":"examplebucket"
}
ACTencentCOS.queryObjectMetadata(param,function(ret){
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本