开发者指南

API 文档

SDK 文档

下载对象

最近更新时间:2020-08-20 15:56:18

简介

本文档提供关于对象的下载操作相关的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
GET Object 下载对象 下载一个对象至本地

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API

高级接口(推荐)

下载对象

示例代码一: 下载对象

// 初始化 TransferConfig
TransferConfig transferConfig = new TransferConfig();

// 初始化 TransferManager
TransferManager transferManager = new TransferManager(cosXml, transferConfig);

String bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键
string localDir = System.IO.Path.GetTempPath();//本地文件夹
string localFileName = "my-local-temp-file"; //指定本地保存的文件名

// 下载对象
COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(bucket, cosPath, 
  localDir, localFileName);

downloadTask.progressCallback = delegate (long completed, long total)
{
    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
};
downloadTask.successCallback = delegate (CosResult cosResult) 
{
    COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult result = cosResult 
      as COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult;
    Console.WriteLine(result.GetResultInfo());
    string eTag = result.eTag;
};
downloadTask.failCallback = delegate (CosClientException clientEx, CosServerException serverEx) 
{
    if (clientEx != null)
    {
        Console.WriteLine("CosClientException: " + clientEx);
    }
    if (serverEx != null)
    {
        Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
};
transferManager.Download(downloadTask);
说明:

更多完整示例,请前往 GitHub 查看。

示例代码二: 批量下载

TransferConfig transferConfig = new TransferConfig();

// 初始化 TransferManager
TransferManager transferManager = new TransferManager(cosXml, transferConfig);

string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string localDir = System.IO.Path.GetTempPath();//本地文件夹

for (int i = 0; i < 5; i++) {
  // 下载对象
  string cosPath = "exampleobject" + i; //对象在存储桶中的位置标识符,即称对象键
  string localFileName = "my-local-temp-file"; //指定本地保存的文件名
  COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(bucket, cosPath, 
    localDir, localFileName);
  transferManager.Download(downloadTask);
}
说明:

更多完整示例,请前往 GitHub 查看。

简单操作

下载对象

功能说明

下载一个 Object(文件/对象)至本地(GET Object)。

示例代码

try
{
  string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
  string key = "exampleobject"; //对象键
  string localDir = System.IO.Path.GetTempPath();//本地文件夹
  string localFileName = "my-local-temp-file"; //指定本地保存的文件名
  GetObjectRequest request = new GetObjectRequest(bucket, key, localDir, localFileName);
  //设置进度回调
  request.SetCosProgressCallback(delegate (long completed, long total)
  {
    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
  });
  //执行请求
  GetObjectResult result = cosXml.GetObject(request);
  //请求成功
  Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{
  //请求失败
  Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
  //请求失败
  Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
说明:

更多完整示例,请前往 GitHub 查看。

目录