详情页标题前

腾讯云对象存储在 APICloud 使用 COS

详情页1

简介

本文将介绍如何使用 APICloud 快速集成 COS 功能模块并开发跨平台应用。

APICloud 相关资源

APICloud官网视频教程

准备

按照 APICloud 教程创建 App,并在模块库中搜索 cosClient 模块并点击添加。

cosClient 简单使用

1. 获取模块实例

var demo = api.require('cosClient');

2. 配置密钥

COS SDK 模块提供两种密钥配置方法:

临时密钥(推荐使用)

在 script 标签中实现如下:

function refreshCredentail() {  // 通过请求接口获取临时密钥 secretID 、secretKey、token、startDate、expirationDate;  // 拼接成如下格式 返回即可;  return  "secretID=***&secretKey=***&token=***&startDate=***&expirationDate=***";}

永久密钥

在注册服务之前设置永久密钥:

var demo = api.require('cosClient');demo.setupPermanentCredentail({"secretID":secretID,"secretKey":secretKey});

3. 注册 COS 服务实例

demo.registerTransferManger({"serviceKey":"test","useHttps":true})

cosClient 接口文档

1. 注册基础服务

实例代码

var demo = api.require('cosClient');demo.registerServiceForKey({"serviceKey":"test","useHttps":true})

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 COS 服务实例唯一标识,不传则注册默认服务
appId 字符串 您的 APPID
region 字符串 服务地域名称,可用的服务地域名称请查看官网 https://www.qcloud.com/document/product/436/6224 中提供的地域,这里填入官网里提供的地域简称,例如 ap-beijing 等
isPrefixURL 布尔值
timeOut 整型 超时时间
serviceName 字符串 服务的基础名称, 默认值为: myqcloud.com
suffix 字符串 自定义域名:http://bucketname.suffix 未指定该参数,该存储桶 host 为 http://bucketname.**。 指定该参数为 testsuffix,该存储桶 host 为 http://bucketname.testsuffix.** 。 在 IOS 端生效。
useHttps 布尔值 是否使用 https
userAgent 字符串 设置自定义 ua
host 字符串 自定义域名,不包含“http://”, 在 Android 端生效
port 整型 自定义端口, 在 Android 端生效

返回参数

2. 注册传输服务

实例代码

var demo = api.require('cosClient');demo.registerTransferManger({"serviceKey":"test","useHttps":true})

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 COS 服务实例唯一标识,不传则注册默认服务。
appId 字符串 您的 AppID 。
APPID 是您在成功申请腾讯云账户后所得到的账号,由系统自动分配,具有固定性和唯一性,可在
账号信息中查看。腾讯云账号的 APPID,是与账号 ID 有唯一对应关系的应用 ID
region 字符串 服务地域名称,可用的服务地域名称请查看官网 https://www.qcloud.com/document/product/436/6224 中提供的地域,这里填入官网里提供的地域简称,例如 ap-beijing 等
isPrefixURL 布尔值 默认YES。用于控制拼接URL时桶名称在链接中的位置。示例:
NO时:
https://ap-chengdu.cos.myqcloud.com/0-12500000000
YES时:
https://0-12500000000.cos.ap-chengdu.myqcloud.com
timeOut 整型 超时时间
serviceName 字符串 服务的基础名称, 默认值为: myqcloud.com
suffix 字符串 自定义域名:http://bucketname.suffix 未指定该参数,该存储桶 host 为 http://bucketname.** 。 指定该参数为 testsuffix,该存储桶 host 为 http://bucketname.testsuffix.** 。在 IOS端生效
useHttps 布尔值 是否使用 https
userAgent 字符串 设置自定义 ua
host 字符串 自定义域名,不包含“http://”, 在 Android 端生效
port 整型 自定义端口, 在 Android 端生效

返回参数

3. 获取桶列表

实例代码

/// 模块名称 cosClient,用过模块名拿到模块实例。var demo = api.require('cosClient');demo.getBucketList(    {"serviceKey":"test"}    ,function(ret,err){        /// err 为空时,返回""        if(err != ""){            alert(err.data);        }else{            alert(ret.data);        }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求

返回参数

{  "result":"success",  "data":{  buckets =     [ /// 桶列表              {          createDate = "2021-06-02T07:33:33Z"; /// 创建时间          location = "ap-chengdu"; /// 地域          name = "0-1253960454";  /// 桶名称          type = ""; 存储桶类型      }];  owner =     {      displayName = 2832742109; /// 持有者的名称      id = "qcs::cam::uin/2832742109:uin/2832742109"; /// 持有者 ID,  };}}

4. 删除存储桶

实例代码

/// 模块名称 cosClient,用过模块名拿到模块实例。var demo = api.require('cosClient');demo.deleteBucket({    "serviceKey":"test",    "region":"ap-chengdu",    "bucket":"0-appid",},    function(ret,err){    /// err 为空时,返回""    if(err != ""){        alert(err.data);    }else{        alert(ret.data);    }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 存储桶名称,格式为 BucketName-APPID

返回参数删除成功

{ "result":"success"}

删除失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

5. 创建存储桶

实例代码

/// 模块名称 cosClient,用过模块名拿到模块实例。var demo = api.require('cosClient');demo.createBucket({"serviceKey":"test","name":"apicloudtest","appId":"appId","region":"ap-chengdu"},function(ret,err){    /// err 为空时,返回""    if(err != ""){        alert(err.data);    }else{        alert(ret.data);    }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
name 字符串 桶名称不包含 appid
appId 字符串 用户 appid
region 字符串 桶地域
accessControlList 字符串 定义 bucket 的 acl 属性。有效值:private,public-read-write,public-read;默认值:private
readAccount 字符串 赋予被授权者读的权限,id=”OwnerUin”;
writeAccount 字符串 赋予被授权者写的权限。格式: id=”OwnerUin”;
readWriteAccount 字符串 赋予被授权者读写权限。格式: id=”OwnerUin”;
enableMAZ 布尔值 是否使用多 AZ,默认否

返回参数创建成功

{ "result":"success"}

创建失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

6. 获取存储桶内容

实例代码

var demo = api.require('cosClient');demo.listBucketContent({"serviceKey":"test","bucket":"0-appid","region":"ap-chengdu"},function(ret,err){    /// err 为空时,返回""    if(err != ""){        alert(err.data);    }else{        alert(ret.data);    }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 存储桶名称,格式为 BucketName-APPID
prefix 字符串 前缀匹配,用来规定返回的文件前缀地址
delimiter 字符串 定界符为一个符号,如果有 Prefix,则将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix,然后列出所有 Common Prefix。如果没有 Prefix,则从路径起点开始
marker 字符串 默认以 UTF-8二进制顺序列出条目,所有列出条目从 marker 开始
maxKeys 字符串 单次返回的最大条目数量,默认1000

返回参数获取成功

{ "result":"success", "data":{     "Contents":[         {             "ETag":"\"c57b7cd3647561480b355a92dc2e971a\"", // 根据对象内容计算出的 MD5 算法校验值,例如"22ca88419e2ed4721c23807c678adbe4c08a7880",注意前后携带双引号             "Owner":{                 "ID":"1253960454", // 对象持有者的完整 ID,格式为qcs::cam::uin/[OwnerUin]:uin/[OwnerUin]例如 qcs::cam::uin/100000000001:uin/100000000001,其中100000000001为 uin                 "DisplayName":"1253960454" // 对象持有者的名称             },             "StorageClass":"STANDARD", // 类型标准             "Key":"02_常用语法.pdf", // 文件名             "LastModified":"2023-01-09T11:15:25.000Z", // 最后修改时间             "Size":816838 // 文件大小         }     ],     "MaxKeys":1000,      "IsTruncated":"False",// 响应请求条目是否被截断,值为 'true' 或者 'false'     "CommonPrefixes":[  // 将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix         {             "Prefix":"1\/" // 单条 Common Prefix 的前缀         }     ],     "Delimiter":"\/", // 定界符     "Name":"0-1253960454" // 存储桶的名称,格式为 BucketName-APPID,例如 examplebucket-1250000000}}

获取失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

7. 上传文件

实例代码

var uploadTaskId;var demo = api.require('cosClient');demo.uploadObject({    "serviceKey":"test",    "region":"ap-chengdu",    "bucket":"0-appid",    "filePath":"file://test.jpg",    "object":"test.gif"},function(ret,err){        if(err != ""){            alert(err.data);        }else{            if(ret.result == "begin"){                // 在 begin 时,拿到 taskId,用于取消任务。                uploadTaskId = JSON.parse(ret.data).taskId;                alert(uploadTaskId);            }        }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 存储桶名称,格式为 BucketName-APPID
object 字符串 上传到服务端的文件名
filePath 字符串 本地文件路径
uploadId 字符串 在第一次上传文件时无需设置,再次续传时需要设置
stroageClass 字符串 对象的存储级别
trafficLimit 字符串 针对本次下载行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 – 838860800,即800Kb/s – 800Mb/s,如果超出该范围将返回400错误
enableVerification 字符串 是否在上传完成以后,将 COS 返回的文件 MD5与本地文件算出来的 md5进行校验。默认开启,如果校验出错,文件仍然会被上传到 COS, 不过我们会在本地抛出校验失败的 error

返回参数上传初始化阶段

{ "result":"begin", "data":{    "taskId":taskId, // 当前任务 ID,用户取消任务。    "uploadId":uploadId // 当前上传 ID,用于续传。 }}

上传阶段

{ "result":"processing", "data":{    "totalBytesSent":totalBytesSent, // 当前传输进度。    "totalBytesExpectedToSend":totalBytesExpectedToSend // 文件总大小。 }}

完成上传成功

{ "result":"success", "data":{} // 文件信息}

上传失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

8. 暂停上传

实例代码

var demo = api.require('cosClient');// uploadTaskId 为从上传接口中获取 由业务保存。demo.pauseUploadObject({"taskId":uploadTaskId});

请求参数

参数名 类型 说明 是否必传
taskId 字符串 上传接口中获取 由业务保存,用于取消当前任务

9. 下载文件

实例代码

var downloadTaskId;var demo = api.require('cosClient');demo.registerTransferManger({"serviceKey":"test","useHttps":true})demo.uploadObject({    "serviceKey":"test",    "region":"ap-chengdu",    "bucket":"0-appid",    "filePath":"0-1253960454",    "object":"test.gif"},function(ret,err){        if(err != ""){            alert(err.data);        }else{            if(ret.result == "begin"){                // 在 begin 时,拿到 taskId,用于取消任务。                downloadTaskId = JSON.parse(ret.data).taskId;                alert(downloadTaskId);            }        }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 存储桶名称,格式为 BucketName-APPID
object 字符串 服务端的文件名
versionId 字符串 文件版本号
localPath 字符串 本地文件路径
trafficLimit 字符串 针对本次下载行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 – 838860800,即800Kb/s – 800Mb/s,如果超出该范围将返回400错误
enableVerification 字符串 是否在上传完成以后,将 COS 返回的文件 MD5与本地文件算出来的 MD5进行校验。默认开启,如果校验出错,文件仍然会被上传到 COS, 不过我们会在本地抛出校验失败的 error。默认校验

返回参数下载初始化阶段

{ "result":"begin", "data":{    "taskId":taskId, // 当前任务 ID,用户取消任务。 }}

下载阶段

{ "result":"processing", "data":{    "totalBytesDownload":totalBytesDownload, // 当前传输进度。    "totalBytesExpectedToDownload":totalBytesExpectedToDownload // 文件总大小。 }}

完成下载成功

{"result":"success","data":{} // 文件信息}

下载失败并返回错误信息

{"result":"error","error":{} /// 错误信息}

10. 暂停下载

实例代码

var demo = api.require('cosClient');// uploadTaskId 为从下载接口中获取 由业务保存。demo.pauseDownloadObject({"taskId":downloadTaskId});

请求参数

参数名 类型 说明 是否必传
taskId 字符串 下载接口中获取 由业务保存,用于取消当前任务

11. 获取文件信息

实例代码

var demo = api.require('cosClient');demo.headObject({    "serviceKey":"test",    "region":"ap-chengdu",    "bucket":"0-appid",    "object":"test.jpg"},function(ret,err){        if(err != ""){            alert(err.data);        }else{            alert(ret.data);        }});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 存储桶名称,格式为 BucketName-APPID
object 字符串 服务端的文件名
versionId 字符串 文件版本号

返回参数获取成功

{ "result":"success", "data":{} // 文件对象信息}

获取失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

12. 暂停下载

实例代码

var demo = api.require('cosClient');// uploadTaskId 为从下载接口中获取 由业务保存。demo.pauseDownloadObject({"taskId":uploadTaskId});

请求参数

参数名 类型 说明 是否必传
taskId 字符串 下载接口中获取 由业务保存,用于取消当前任务

13. 删除文件

实例代码

var demo = api.require('cosClient');demo.deleteObject({    "serviceKey":"test",    "region":"ap-chengdu",    "bucket":"0-1253960454",    "object":"test.jpg"},function(ret,err){        if(err != ""){            alert(err.data);        }else{            alert(ret.result);
}});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos 服务实例唯一标识,不传则使用默认服务实例进行网络请求
region 字符串 桶地域
bucket 字符串 桶名称-AppId
object 字符串 服务端的文件名
versionId 字符串 文件版本号

返回参数删除成功

{ "result":"success",}

删除失败并返回错误信息

{ "result":"error", "error":{} /// 错误信息}

14. 取消所有请求任务

实例代码

var demo = api.require('cosClient');demo.cancelAll({    "serviceKey":"test"    },function(ret,err){        if(err != ""){            alert(err.data);        }else{            alert(ret.result);
}});

参数说明

请求参数

参数名 类型 说明 是否必传
serviceKey 字符串 cos服务实例唯一标识,取消对应服务实例发起的网络请求

返回参数

对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144559.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云TDSQL-C MySQL版实名认证

    当您完成腾讯云账号注册后,您需要完成实名认证或完善行业信息。警告实名认证直接影响账号和资源的归属,如果企业用户使用个人信息进行实名认证,后续出现人员变动或账号纠纷时,可能会影响企业用户的业务,甚至造成经济损失。在进行实名认证之前,请确认您在腾讯云购买和使用的资源是属于个人还是企业。 认证方式 个人实名认证企业实名认证 官网1折活动,限时活动,即将结束,速速收…

    腾讯云 2023年12月9日
  • 阿里云RDS数据库创建账号-云淘科技

    本文介绍如何为RDS MariaDB实例创建账号。 账号类型 RDS MariaDB实例支持两种数据库账号:高权限账号和普通账号。您可以在控制台管理所有账号和数据库。 账号类型 说明 高权限账号 只能通过控制台或API创建和管理。 一个实例中只能创建一个高权限账号,可以管理所有普通账号和数据库。 开放了更多权限,可满足个性化和精细化的权限管理需求,例如可按用…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云Serverless应用中心ICP 备案-同尘科技

    为什么需要备案? 根据国务院令第292号《互联网信息服务管理办法》和工信部令第33号《非经营性互联网信息服务备案管理办法》规定,国家对经营性互联网信息服务实行许可制度,对非经营性互联网信息服务实行备案制度。未获取许可或者未履行备案手续的,不得从事互联网信息服务,否则属于违法行为。因此,使用中国内地(大陆)的 Serverless 服务开办网站并绑定域名服务时…

    腾讯云 2023年12月9日
  • 腾讯云CVM服务器关于硅谷地域标准型 S3 价格调整的公告

    腾讯云硅谷地域标准型 S3 包年包月及按量计费价格调整: 操作系统 降幅 Linux 包年包月及按量计费均降价21% Windows 包年包月及按量计费均降价10% 说明事项 调整后的价格于2020年7月24日起生效。本文档仅对价格调整进行说明,具体价格请前往 CVM 价格计算器 进行测算。若您有任何疑问,欢迎随时 联系我们。 腾讯云云服务器官网1折活动进行…

    腾讯云 2023年12月9日
  • 腾讯云TDSQL-C MySQL版开启或关闭并行查询

    TDSQL-C MySQL 版支持并行查询能力,您可通过控制台或命令行调整相关参数,为实例开启或关闭并行查询功能。 前提条件 数据库版本:TDSQL-C MySQL 版 8.0 内核版本 3.1.8 及以上。 参数说明 说明读写实例与只读实例均支持开启并行查询功能,但实例 CPU 核数需大于等于4。您可通过控制台或命令行调整参数 txsql_max_para…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。