下载对象

最近更新时间:2024-11-06 09:45:32

我的收藏

简介

本文档提供关于对象的下载操作相关的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
下载对象
下载一个对象至本地

高级接口(推荐)

高级接口支持暂停、恢复以及取消下载请求,同时支持断点下载功能。
您只需要保证 bucket、cosPath、savePath参数一致,SDK 便会从上次已经下载的位置继续下载。

授权说明

在您进行 授权策略 时,action 请参考如下示例。
{
"version": "2.0",
"statement": [
{
"action": [
//head操作
"name/cos:HeadObject",
//下载操作
"name/cos:GetObject",
],
"effect": "allow",
"resource": [
"qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/doc/*"
]
}
]
}
对象存储的更多 action,请参见 支持CAM的业务接口

下载对象

// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
let 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/bucket
let 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/bucket
let 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) { // 异常处理 }