简介
本文档提供关于对象的下载操作相关的 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
下载对象 | 下载一个对象至本地 |
高级接口(推荐)
高级接口支持暂停、恢复以及取消下载请求,同时支持断点下载功能。
您只需要保证 bucket、cosPath、savePath参数一致,SDK 便会从上次已经下载的位置继续下载。
授权说明
{"version": "2.0","statement": [{"action": [//head操作"name/cos:HeadObject",//下载操作"name/cos:GetObject",],"effect": "allow","resource": ["qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/doc/*"]}]}
下载对象
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucketlet bucket = "examplebucket-1250000000";//对象在存储桶中的位置标识符,即称对象键let cosPath = "exampleobject.txt";//本地文件下载路径,如果文件不存在sdk会自动创建let downliadPath = "本地文件路径";let getRequest = new GetObjectRequest(bucket, cosPath, downliadPath); let task: DownloadTask = CosXmlBaseService.default().download(getRequest);// 下载进度回调 task.onProgress = (progress: HttpProgress) => {// progress.complete为当前已下载大小// progress.target为总大小 }; task.onResult = {// 下载成功回调 onSuccess: (request, result: CosXmlDownloadTaskResult) => { // todo 下载成功后的逻辑 },//下载失败回调 onFail: (request, error: CosError) => { // todo 下载失败后的逻辑 } }//开始下载 task.start();//暂停任务// task.pause();//恢复任务// task.resume();//取消任务// task.cancel();
说明:
高级下载接口支持断点续传,所以会在下载前先发起 HEAD 请求获取文件信息。如果您使用的是临时密钥或者使用子账号访问,请确保权限列表中包含 HeadObject 的权限。
匿名下载(不用传入密钥,对公开文件进行下载)
// 匿名下载生成 CosXmlBaseService 不需要传入密钥let noCredentialService = new CosXmlBaseService( context, new CosXmlServiceConfig("ap-guangzhou") );// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucketlet bucket = "examplebucket-1250000000";//对象在存储桶中的位置标识符,即称对象键let cosPath = "exampleobject.txt";//本地文件下载路径,如果文件不存在sdk会自动创建let downliadPath = "本地文件路径";let getRequest = new GetObjectRequest(bucket, cosPath, downliadPath); let task: DownloadTask = noCredentialService.download(getRequest);//开始下载 task.start();
简单操作
下载对象
功能说明
下载一个 Object(文件/对象)至本地(GET Object)。
示例代码
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucketlet bucket = "examplebucket-1250000000";//对象在存储桶中的位置标识符,即称对象键let cosPath = "exampleobject.txt";//本地文件下载路径,如果文件不存在sdk会自动创建let downliadPath = "本地文件路径";let request = new GetObjectRequest(bucket, cosPath, downliadPath); try { let result = await CosXmlBaseService.default().getObject(request) // result中包括http headers等 } catch (e) { // 异常处理 }