对象操作

最近更新时间:2019-02-13 15:01:16

简介

本文档提供关于对象的简单操作、分块操作等其他操作相关的 API 概览以及 SDK 示例代码。

简单操作

API 操作名 操作描述
GET Bucket(List Object) 获取对象列表 获取存储桶中的对象列表
PUT Object 上传对象 上传一个 Object(文件/对象)至 Bucket
POST Object 表单上传对象 使用表单请求上传对象
HEAD Object 获取对象元数据 获得 Object 的 Meta 信息
GET Object 获取对象 下载一个 Object(文件/对象)至本地
Options Object 预请求跨域配置 用预请求来确认是否可以发送真正的跨域请求
PUT Object - Copy 设置对象复制 复制文件到目标路径
DELETE Object 删除单个对象 在 Bucket 中删除指定 Object (文件/对象)

分块操作

API 操作名 操作描述
List Multipart Uploads 查询分块上传 查询正在进行中的分块上传信息
Initiate Multipart Upload 初始化分块上传 初始化 Multipart Upload 上传操作
Upload Part 上传分块 分块上传文件
Upload Part - Copy 复制分块 将其他对象复制为一个分块
List Parts 查询已上传块 查询特定分块上传操作中的已上传的块
Complete Multipart Upload 完成分块上传 完成整个文件的分块上传
Abort Multipart Upload 终止分块上传 终止一个分块上传操作并删除已上传的块

其他操作

API 操作名 操作描述
POST Object restore 恢复归档对象 将归档类型的对象取回访问
PUT Object acl 设置对象 ACL 设置 Bucket 中某个 Object (文件/对象)的 ACL
GET Object acl 获取对象 ACL 获取 Object(文件/对象)的 ACL

简单操作

获取对象列表

功能说明

获取指定存储桶中所有的对象(Object List)。

方法原型

GetBucketResult GetBucket(GetBucketRequest request);

void GetBucket(GetBucketRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    GetBucketRequest request = new GetBucketRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    GetBucketResult result = cosXml.GetBucket(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
GetBucketRequest request = new GetBucketRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
cosXml.GetBucket(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetBucketResult result = cosResult as GetBucketResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
    });
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetBucketResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
listBucket ListBucket 返回 Bucket 对象列表信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

简单上传对象

功能说明

上传对象到指定的存储桶中(Put Object)。

方法原型

PutObjectResult PutObject(PutObjectRequest request);

void PutObject(PutObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string srcPath = @"F:\exampleobject"//本地文件绝对路径
    PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置进度回调
    request.SetCosProgressCallback(delegate(long completed, long total)
    {
        Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
    });
    //执行请求
    PutObjectResult result = cosXml.PutObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string srcPath = @"F:\exampleobject";  //本地文件绝对路径
PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置进度回调
request.SetCosProgressCallback(delegate(long completed, long total)
{
    Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
});
//执行请求
cosXml.PutObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PutObjectResult result = cosResult as PutObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
srcPath 构造方法 用于上传到 COS 的本地文件的绝对路径 string
data 构造方法 用于上传到 COS 的 byte 数组 byte[]
progressCallback SetCosProgressCallback 设置上传进度回调 Callback.OnProgressCallback
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PutObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
eTag string 返回对象的 eTag

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

表单上传对象

功能说明

使用表单形式上传对象(Post Object)。

方法原型

PostObjectResult PostObject(PostObjectRequest request);

void PostObject(PostObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string srcPath = @"F:\exampleobject"//本地文件绝对路径
    PostObjectRequest request = new PostObjectRequest(bucket, key, srcPath);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置进度回调
    request.SetCosProgressCallback(delegate(long completed, long total)
    {
        Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
    });
    //执行请求
    PostObjectResult result = cosXml.PostObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string srcPath = @"F:\exampleobject";  //本地文件绝对路径
PostObjectRequest request = new PostObjectRequest(bucket, key, srcPath);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置进度回调
request.SetCosProgressCallback(delegate(long completed, long total)
{
    Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
});
//执行请求
cosXml.PostObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PostObjectResult result = cosResult as PostObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
srcPath 构造方法 用于上传到 COS 的本地文件的绝对路径 string
data 构造方法 用于上传到 COS 的 byte 数组 byte[]
progressCallback SetCosProgressCallback 设置上传进度回调 Callback.OnProgressCallback
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PostObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
eTag string 返回对象的 eTag

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

检索对象

功能说明

查询存储桶中是否存在指定的对象(Head Object)。

方法原型

HeadObjectResult HeadObject(HeadObjectRequest request);

void HeadObject(HeadObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    HeadObjectRequest request = new HeadObjectRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    HeadObjectResult result = cosXml.HeadObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
HeadObjectRequest request = new HeadObjectRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.HeadObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        HeadObjectResult result = cosResult as HeadObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法或 SetCosPath 存储于 COS 上 Object 的对象键 string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 HeadObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
eTag string 返回对象的 eTag

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

下载对象

功能说明

下载对象到本地(Get Object)。

方法原型

GetObjectResult GetObject(GetObjectRequest request);

void GetObject(GetObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string localDir = @"F:\";//下载到本地指定文件夹
    string localFileName = "exampleobject"; //指定本地保存的文件名
    GetObjectRequest request = new GetObjectRequest(bucket, key, localDir, localFileName);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置进度回调
    request.SetCosProgressCallback(delegate(long completed, long total)
    {
        Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
    });
    //执行请求
    GetObjectResult result = cosXml.GetObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
     Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string localDir = @"F:\";//下载到本地指定文件夹
string localFileName = "exampleobject"; //指定本地保存的文件名
GetObjectRequest request = new GetObjectRequest(bucket, key, localDir, localFileName);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置进度回调
request.SetCosProgressCallback(delegate(long completed, long total)
{
    Console.WriteLine(String.Format("progress = {1:##.##}%", completed * 100.0 / total));
});
//执行请求
cosXml.GetObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetObjectResult result = cosResult as GetObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
localDir 构造方法 下载对象到本地保存的绝对文件夹路径 string
localFileName 构造方法 下载对象到本地保存的文件名 string
progressCallback SetCosProgressCallback 设置下载进度回调 Callback.OnProgressCallback
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
eTag string 返回对象的 eTag

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

简单复制

将一个对象复制到另一个对象(Put Object Copy)。

方法原型

CopyObjectResult CopyObject(CopyObjectRequest request);

void CopyObject(CopyObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string sourceAppid = "1253960454"; //账号 appid
    string sourceBucket = "source-1253960454"; //"源对象所在的存储桶
    string sourceRegion = "ap-beijing"; //源对象的存储桶所在的地域
    string sourceKey = "exampleobject"; //源对象键
    //构造源对象属性
    COSXML.Model.Tag.CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket, sourceRegion, sourceKey);

    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "copy_exampleobject"; //对象在存储桶中的位置,即称对象键.
    CopyObjectRequest request =  new CopyObjectRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置拷贝源
    request.SetCopySource(copySource);
    //设置是否拷贝还是更新,此处是拷贝
    request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY);
    //执行请求
    CopyObjectResult result = cosXml.CopyObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string sourceAppid = "1253960454"; //账号 appid
string sourceBucket = "source-1253960454"; //"源对象所在的存储桶
string sourceRegion = "ap-beijing"; //源对象的存储桶所在的地域
string sourceKey = "exampleobject"; //源对象键
//构造源对象属性
COSXML.Model.Tag.CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket, sourceRegion, sourceKey);

string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "copy_exampleobject"; //对象在存储桶中的位置,即称对象键.
CopyObjectRequest request =  new CopyObjectRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置拷贝源
request.SetCopySource(copySource);
//设置是否拷贝还是更新,此处是拷贝
request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY);
//执行请求
cosXml.CopyObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        CopyObjectResult result = cosResult as CopyObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
    });
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
copySource SetCopySource 复制的数据源路径描述 CopySourceStruct
metaDataDirective SetCopyMetaDataDirective 是否拷贝源文件的元数据或者更新源文件的元数据 CosMetaDataDirective
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 CopyObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
copyObject CopyObject 返回成功复制的对象信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

Options 请求

功能说明

获取预请求跨域配置(Options Object)。

方法原型

OptionObjectResult OptionObject(OptionObjectRequest request);

void OptionObject(OptionObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string origin = "http://cloud.tencent.com";
    string accessMthod = "PUT";
    OptionObjectRequest request = new OptionObjectRequest(bucket, key, origin, accessMthod);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    OptionObjectResult result = cosResult as OptionObjectResult;
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string origin = "http://cloud.tencent.com";
string accessMthod = "PUT";
OptionObjectRequest request = new OptionObjectRequest(bucket, key, origin, accessMthod);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.DeleteObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        OptionObjectResult result = cosResult as OptionObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
origin 构造方法 或 SetOrigin 模拟跨域访问的请求来源域名 string
accessMthod 构造方法 或 SetAccessControlMethod 模拟跨域访问的请求 HTTP 方法 string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
accessControlAllowHeaders List<string> 跨域访问的允许请求头部
accessControlAllowMethods List<string> 跨域访问的允许请求 HTTP 方法
accessControlAllowExposeHeaders List<string> 跨域访问的允许请求自定义头部
accessControlMaxAge long OPTIONS 请求得到结果的有效期

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

删除对象

功能说明

删除指定的对象(Delete Object)。

方法原型

DeleteObjectResult DeleteObject(DeleteObjectRequest request);

void DeleteObject(DeleteObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    DeleteObjectResult result = cosXml.DeleteObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.DeleteObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        DeleteObjectResult getObjectResult = result as DeleteObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

分块操作

查询分片上传

功能说明

查询指定存储桶中正在进行的分片上传(List Multipart Uploads)。

方法原型

ListMultiUploadsResult ListMultiUploads(ListMultiUploadsRequest request);

void ListMultiUploads(ListMultiUploadsRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    ListMultiUploadsRequest request = new ListMultiUploadsRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    ListMultiUploadsResult result = cosXml.ListMultiUploads(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
ListMultiUploadsRequest request = new ListMultiUploadsRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.ListMultiUploads(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        ListMultiUploadsResult result = cosResult as ListMultiUploadsResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
    });
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 ListMultiUploadsResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
listMultipartUploads ListMultipartUploads 返回 Bucket 中所有正在进行分块上传的信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

分片上传对象

分片上传对象可包括的操作:

  • 分片上传对象: 初始化分片上传, 上传分片块, 完成所有分片块上传。
  • 分片续传:查询已上传的分片块, 上传分片块,完成所有分片块上传。
  • 删除已上传分片块。

初始化分片上传

功能说明

初始化分片上传,获取对应的 uploadId(Initiate Multipart Upload)。

方法原型

InitMultipartUploadResult InitMultipartUpload(InitMultipartUploadRequest request);

void InitMultipartUpload(InitMultipartUploadRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    InitMultipartUploadRequest request = new InitMultipartUploadRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    InitMultipartUploadResult result = cosXml.InitMultipartUpload(request);
    //请求成功
    string uploadId = result.initMultipartUpload.uploadId; //用于后续分片上传的 uploadId
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
InitMultipartUploadRequest request = new InitMultipartUploadRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.InitMultipartUpload(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        InitMultipartUploadResult result = cosResult as InitMultipartUploadResult;
        string uploadId = result.initMultipartUpload.uploadId; //用于后续分片上传的 uploadId
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 InitMultipartUploadResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
initMultipartUpload InitiateMultipartUpload 返回 对象 初始化分片上传的 uploadId

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

查询已上传的分片块

功能说明

查询指定 uploadId 已上传的分片块(List Parts)。

方法原型

ListPartsResult ListParts(ListPartsRequest request);

void ListParts(ListPartsRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
    ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    ListPartsResult result = cosXml.ListParts(request);
    //请求成功
    //列举已上传的分片块
    List<COSXML.Model.Tag.ListParts.Part> alreadyUploadParts = result.listParts.parts;
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.ListParts(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        ListPartsResult result = cosResult as ListPartsResult;
        //列举已上传的分片块
        List<COSXML.Model.Tag.ListParts.Part> alreadyUploadParts = result.listParts.parts;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
     {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
uploadId 构造方法 或 SetUploadId 标识指定分片上传的 uploadId string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 ListPartsResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
listParts ListParts 返回指定 uploadId 分块上传中的已上传的块信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

上传分片块

上传分片块(Upload Part)。

方法原型

UploadPartResult UploadPart(UploadPartRequest request);

void UploadPart(UploadPartRequest, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
    int partNumber = 1; //分片块编号,必须从1开始递增
    string srcPath = @"F:\exampleobject"; //本地文件绝对路径
    UploadPartRequest request = new UploadPartRequest(bucket, key, partNumber, uploadId, srcPath);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置进度回调
    request.SetCosProgressCallback(delegate(long completed, long total)
    {
        Console.WriteLine(String.Format("progress = {0:##.##}%",  completed * 100.0 / total));
    });
    //执行请求
    UploadPartResult result = cosXml.UploadPart(request);
    //请求成功
    //获取返回分片块的eTag,用于后续CompleteMultiUploads
    string eTag = result.eTag;
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
int partNumber = 1; //分片块编号,必须从1开始递增
string srcPath = @"F:\exampleobject"; //本地文件绝对路径
UploadPartRequest request = new UploadPartRequest(bucket, key, partNumber, uploadId, srcPath);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置进度回调
request.SetCosProgressCallback(delegate(long completed, long total)
{
    Console.WriteLine(String.Format("progress = {0:##.##}%",  completed * 100.0 / total));
});
//执行请求
cosXml.UploadPart(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        UploadPartResult result = cosResult as UploadPartResult;
        //获取返回分片块的eTag,用于后续CompleteMultiUploads
        string eTag = result.eTag;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
uploadId 构造方法 或 SetUploadId 标识指定分片上传的 uploadId string
partNumber 构造方法 或 SetPartNumber 标识指定分片的编号,必须 >= 1 int
srcPath 构造方法 用于上传到 COS 的本地文件的绝对路径 string
data 构造方法 用于上传到 COS 的 byte 数组 byte[]
progressCallback SetCosProgressCallback 设置上传进度回调 Callback.OnProgressCallback
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 UploadPartResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
eTag string 返回对象的分片块的 eTag

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

完成所有分片块上传

功能说明

实现完成整个分块上传(Complete Multipart Upload)。

方法原型

CompleteMultipartUploadResult CompleteMultiUpload(CompleteMultipartUploadRequest request);

void CompleteMultiUpload(CompleteMultipartUploadRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
    CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置已上传的parts,必须有序,按照partNumber递增
    request.SetPartNumberAndETag(1, "partNumber1 eTag");
    //执行请求
    CompleteMultipartUploadResult result = cosXml.CompleteMultiUpload(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置已上传的parts,必须有序,按照partNumber递增
request.SetPartNumberAndETag(1, "partNumber1 eTag");
//执行请求
cosXml.CompleteMultiUpload(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        CompleteMultipartUploadResult result = result as CompleteMultipartUploadResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
   {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
    });
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
uploadId 构造方法 或 SetUploadId 标识指定分片上传的 uploadId string
partNumber SetPartNumberAndETag 标识指定分片块的编号,必须 >= 1 int
eTag SetPartNumberAndETag 标识指定分片块的上传返回的 eTag string
partNumberAndETags SetPartNumberAndETag 标识分片块的编号和上传返回的 eTag Dictionary<int, string>
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 CompleteMultipartUploadResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
CompleteResult CompleteMultipartUploadResult 返回所有分片块上传成功信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

删除已上传的分片块

功能说明

舍弃一个分块上传并删除已上传的块(Abort Multipart Upload)。

方法原型

AbortMultipartUploadResult AbortMultiUpload(AbortMultipartUploadRequest request);

void AbortMultiUpload(AbortMultipartUploadRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
    AbortMultipartUploadRequest request = new AbortMultipartUploadRequest(bucket, key, uploadId);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    AbortMultipartUploadResult result = cosXml.AbortMultiUpload(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
string uploadId ="xxxxxxxx"; //初始化分片上传返回的uploadId
AbortMultipartUploadRequest request = new AbortMultipartUploadRequest(bucket, key, uploadId);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.AbortMultiUpload(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        AbortMultipartUploadResult result = result as AbortMultipartUploadResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
uploadId 构造方法 或 SetUploadId 标识指定分片上传的 uploadId string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 AbortMultipartUploadResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

其他操作

恢复归档对象

功能说明

恢复归档对象(POST Object restore)。

方法原型

RestoreObjectResult RestoreObject(RestoreObjectRequest request);

void RestoreObject(RestoreObjectRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    RestoreObjectRequest request = new RestoreObjectRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //恢复时间
    request.SetExpireDays(3);
    request.SetTier(COSXML.Model.Tag.RestoreConfigure.Tier.Bulk);

    //执行请求
    RestoreObjectResult result = cosXml.RestoreObject(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
RestoreObjectRequest request = new RestoreObjectRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//恢复时间
request.SetExpireDays(3);
request.SetTier(COSXML.Model.Tag.RestoreConfigure.Tier.Bulk);
//执行请求
cosXml.RestoreObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        RestoreObjectResult result = cosResult as RestoreObjectResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
days SetExpireDays 设置临时副本的过期时间 int
tier SetTier 恢复数据时,Tier 可以指定为 CAS 支持的三种恢复类型,分别为 Expedited、Standard、Bulk RestoreConfigure.Tier
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 RestoreObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

设置对象 ACL

功能说明

设置对象访问权限控制列表(ACL)(Put Object ACL)。

方法原型

PutObjectACLResult PutObjectACL(PutObjectACLRequest request);

void PutObjectACL(PutObjectACLRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    PutObjectACLRequest request = new PutObjectACLRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置私有读写权限 
    request.SetCosACL(CosACL.PRIVATE); 
    //授予1131975903账号读权限 
    COSXML.Model.Tag.GrantAccount readAccount = new COSXML.Model.Tag.GrantAccount(); 
    readAccount.AddGrantAccount("1131975903", "1131975903"); 
    request.SetXCosGrantRead(readAccount);
    //执行请求
    PutObjectACLResult result = cosXml.PutObjectACL(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
PutObjectACLRequest request = new PutObjectACLRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置私有读写权限 
request.SetCosACL(CosACL.PRIVATE); 
//授予1131975903账号读权限 
COSXML.Model.Tag.GrantAccount readAccount = new COSXML.Model.Tag.GrantAccount(); 
readAccount.AddGrantAccount("1131975903", "1131975903"); 
request.SetXCosGrantRead(readAccount);
//执行请求
cosXml.PutObjectACL(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PutObjectACLResult result = cosResult as PutObjectACLResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
cosAcl SetCosAcl 设置存储桶的acl权限 string
grandtAccout SetXCosGrantRead 或 SetXCosGrantWrite 或 SetXCosReadWrite 授予用户读写权限 GrantAccount
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url中查询参数 List<string>

返回结果说明

通过 PutObjectACLResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。

获取对象 ACL

功能说明

获取对象访问权限控制列表(ACL)(Get Object ACL)。

方法原型

GetObjectACLResult GetObjectACL(GetObjectACLRequest request);

void GetObjectACL(GetObjectACLRequest request, COSXML.Callback.OnSuccessCallback<CosResult> successCallback, COSXML.Callback.OnFailedCallback failCallback);

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
    GetObjectACLRequest request = new GetObjectACLRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    GetObjectACLResult result = cosXml.GetObjectACL(request);
    //请求成功
    Console.WriteLine(result.GetResultInfo());
}
catch (COSXML.CosException.CosClientException clientEx)
{    
    //请求失败
    Console.WriteLine("CosClientException: " + clientEx.Message);
}
catch (COSXML.CosException.CosServerException serverEx)
{
    //请求失败
    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}

/**
//异步方法
string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
GetObjectACLRequest request = new GetObjectACLRequest(bucket, key);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.GetObjectACL(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetObjectACLResult result = cosResult as GetObjectACLResult;
        Console.WriteLine(result.GetResultInfo());

    }, 
    delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
    {    
        //请求失败
        if (clientEx != null)
        {
            Console.WriteLine("CosClientException: " + clientEx.Message);
        }
        else if (serverEx != null)
        {
            Console.WriteLine("CosServerException: " + serverEx.GetInfo());
        }
});
*/

参数说明

参数名称 设置方法 描述 类型
bucket 构造方法 存储桶名称,格式:BucketName-APPID string
key 构造方法 或 SetCosPath 存储于 COS 上 Object 的 对象键 string
signStartTimeSecond SetSign 签名有效期起始时间 long
durationSecond SetSign 签名有效期时长 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetObjectACLResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
accessControlPolicy AccessControlPolicy 返回对象的访问权限列表信息

说明:

操作失败时,系统将抛出 CosClientExceptionCosServerException 异常。