接口文档

最近更新时间: 2024-06-12 15:06:00

Bucket操作

创建存储桶

功能说明

在指定账号下创建一个存储桶。

方法原型

PutBucketResult PutBucket(PutBucketRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    PutBucketRequest request = new PutBucketRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    PutBucketResult result = cosXml.PutBucket(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
PutBucketRequest request = new PutBucketRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
cosXml.PutBucket(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PutBucketResult result = cosResult as PutBucketResult;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PutBucketResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

检索存储桶及其权限

功能说明

检索存储桶是否存在且是否有权限访问。

方法原型

HeadBucketResult HeadBucket(HeadBucketRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    HeadBucketRequest request = new HeadBucketRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    HeadBucketResult result = cosXml.HeadBucket(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
HeadBucketRequest request = new HeadBucketRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
cosXml.HeadBucket(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        HeadBucketResult result = cosResult as HeadBucketResult;
        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());
        }
    });
*/

删除存储桶

功能说明

删除指定账号下的空存储桶。

方法原型

DeleteBucketResult DeleteBucket(DeleteBucketRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    DeleteBucketRequest request = new DeleteBucketRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    DeleteBucketResult result = cosXml.DeleteBucket(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
DeleteBucketRequest request = new DeleteBucketRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
cosXml.DeleteBucket(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        DeleteBucketResult result = cosResult as DeleteBucketResult;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteBucketResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

设置存储桶 ACL

功能说明

设置指定存储桶访问权限控制列表。

方法原型

PutBucketACLResult PutBucketACL(PutBucketACLRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    PutBucketACLRequest request = new PutBucketACLRequest(bucket);
    //设置签名有效时长
    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);
    //执行请求
    PutBucketACLResult result = cosXml.PutBucketACL(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
PutBucketACLRequest request = new PutBucketACLRequest(bucket);
//设置签名有效时长
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.PutBucketACL(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PutBucketACLResult result = cosResult as PutBucketACLResult;
        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
cosAcl SetCosAcl 设置存储桶的 ACL 权限 string
grantAccount SetXCosGrantRead 或 SetXCosGrantWrite 或 SetXCosReadWrite 授予用户读写权限 GrantAccount
signStartTimeSecond SetSign 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PutBucketACLResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

查询存储桶 ACL

功能说明

查询存储桶的访问控制列表。

方法原型

GetBucketACLResult GetBucketACL(GetBucketACLRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    GetBucketACLRequest request = new GetBucketACLRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    GetBucketACLResult result = cosXml.GetBucketACL(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
GetBucketACLRequest request = new GetBucketACLRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
cosXml.GetBucketACL(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetBucketACLResult result = cosResult as GetBucketACLResult;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetBucketACLResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

Get Bucket CORS

功能说明

Get Bucket CORS 实现跨域访问读取。

操作方法原型

  • 调用 Get Bucket CORS 操作

    
     var params = {
         Bucket : 'STRING_VALUE',    /* 必须 */
         Region : 'STRING_VALUE'        /* 必须 */
     };
    
     cos.getBucketCors(params, function(err, data) {
         if(err) {
             console.log(err);
         } else {
             console.log(data);
         }
     });
    

操作参数说明

参数名 参数描述 类型 必填
Bucket Bucket 的名称。命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式 String
Region Bucket 所在区域。 String

回调函数说明

function(err, data) { ... }

回调参数说明

参数名 参数描述 类型
err 请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功,则为空 Object
data 请求成功时返回的对象,如果请求发生错误,则为空 Object
CORSRule 配置的信息集合 Array
AllowedMethod 允许的 HTTP 操作,枚举值:Get,Put,Head,Post,Delete Array
AllowedOrigin 允许的访问来源,支持『 * 』通配符 Array
AllowedHeader 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部 Array
ExposeHeader 设置浏览器可以接收到的来自服务器端的自定义头部信息 Array
MaxAgeSeconds 设置 OPTIONS 请求得到结果的有效期 String
ID 规则名称 String

设置跨域配置

功能说明

设置指定存储桶的跨域访问配置信息。

方法原型

PutBucketCORSResult PutBucketCORS(PutBucketCORSRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    PutBucketCORSRequest request = new PutBucketCORSRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置跨域访问配置 CORS
    COSXML.Model.Tag.CORSConfiguration.CORSRule corsRule = new COSXML.Model.Tag.CORSConfiguration.CORSRule();
    corsRule.id = "corsconfigureId";
    corsRule.maxAgeSeconds = 6000;
    corsRule.allowedOrigin = "http://fincloud.tencent.cn";

    corsRule.allowedMethods = new List<string>();
    corsRule.allowedMethods.Add("PUT");

    corsRule.allowedHeaders = new List<string>();
    corsRule.allowedHeaders.Add("Host");

    corsRule.exposeHeaders = new List<string>();
    corsRule.exposeHeaders.Add("x-cos-meta-x1");

    request.SetCORSRule(corsRule);

    //执行请求
    PutBucketCORSResult result = cosXml.PutBucketCORS(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
PutBucketCORSRequest request = new PutBucketCORSRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

//设置跨域访问配置 CORS
COSXML.Model.Tag.CORSConfiguration.CORSRule corsRule = new COSXML.Model.Tag.CORSConfiguration.CORSRule();
corsRule.id = "corsconfigureId";
corsRule.maxAgeSeconds = 6000;
corsRule.allowedOrigin = "http://fincloud.tencent.cn";

corsRule.allowedMethods = new List<string>();
corsRule.allowedMethods.Add("PUT");

corsRule.allowedHeaders = new List<string>();
corsRule.allowedHeaders.Add("Host");

corsRule.exposeHeaders = new List<string>();
corsRule.exposeHeaders.Add("x-cos-meta-x1");

request.SetCORSRule(corsRule);

cosXml.PutBucketCORS(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        PutBucketCORSResult result = cosResult as PutBucketCORSResult;
        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
corsRule SetCORSRule 设置存储桶的跨域访问配 CORSConfiguration.CORSRule
signStartTimeSecond SetSign 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PutBucketCORSResult 返回请求结果。

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

查询跨域配置

功能说明

查询指定存储桶的跨域访问配置信息。

方法原型

GetBucketCORSResult GetBucketCORS(GetBucketCORSRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    GetBucketCORSRequest request = new GetBucketCORSRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    GetBucketCORSResult result = cosXml.GetBucketCORS(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
GetBucketCORSRequest request = new GetBucketCORSRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.GetBucketCORS(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetBucketCORSResult result = cosResult as GetBucketCORSResult;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetBucketCORSResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
corsConfiguration CORSConfiguration 返回 Bucket 跨域资源共享配置的信息

删除跨域配置

功能说明

删除指定存储桶的跨域访问配置。

方法原型

DeleteBucketCORSResult DeleteBucketCORS(DeleteBucketCORSRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
    DeleteBucketCORSRequest request = new DeleteBucketCORSRequest(bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //执行请求
    DeleteBucketCORSResult result = cosXml.DeleteBucketCORS(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
DeleteBucketCORSRequest request = new DeleteBucketCORSRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//执行请求
cosXml.DeleteBucketCORS(request, 
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        DeleteBucketCORSResult result = cosResult as DeleteBucketCORSResult;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteBucketCORSResult 返回请求结果。

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

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 = {0:##.##}%", 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 = {0:##.##}%", 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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 PutObjectResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

查询对象元数据

功能说明

查询对象的元数据信息。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 HeadObjectResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException 或 CosServerException(服务端异常)异常。

下载对象

功能说明

下载一个对象至本地。

方法原型

GetObjectResult GetObject(GetObjectRequest request);

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

GetObjectBytesResult GetObject(GetObjectBytesRequest request);

void GetObject(GetObjectBytesRequest 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 = {0:##.##}%", 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 = {0:##.##}%", 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());
        }
});

//下载返回 bytes 数据
try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键

    GetObjectBytesRequest request = new GetObjectBytesRequest(bucket, key);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置进度回调
    request.SetCosProgressCallback(delegate(long completed, long total)
    {
        Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
    });
    //执行请求
    GetObjectBytesResult result = cosXml.GetObject(request);
    //获取内容
    byte[] content = result.content;
    //请求成功
    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"; //对象在存储桶中的位置,即称对象键

GetObjectBytesRequest request = new GetObjectBytesRequest(bucket, key);
//设置签名有效时长
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.GetObject(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        GetObjectBytesResult result = cosResult as GetObjectBytesResult;
        //获取内容
        byte[] content = result.content;
        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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 GetObjectResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

删除单个对象

功能说明

在存储桶中删除指定对象。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteObjectResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

删除多个对象

功能说明

在存储桶中批量删除对象。

方法原型

DeleteMultiObjectResult  DeleteMultiObjects(DeleteMultiObjectRequest request);

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

请求示例

try
{
    string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
    DeleteMultiObjectRequest  request = new DeleteMultiObjectRequest (bucket);
    //设置签名有效时长
    request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
    //设置返回结果形式
    request.SetDeleteQuiet(false);
    //对象key
    string key = "exampleobject"; //对象在存储桶中的位置,即称对象键
    List<string> objects = new List<string>();
    objects.Add(key);
    request.SetObjectKeys(objects);
    //执行请求
    DeleteMultiObjectResult result = cosXml.DeleteMultiObjects(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
DeleteMultiObjectRequest request = new DeleteMultiObjectRequest(bucket);
//设置签名有效时长
request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
//设置返回结果形式
request.SetDeleteQuiet(false);
//对象key
string key = "exampleobject"; //对象在存储桶中的位置,即称对象键
List<string> objects = new List<string>();
objects.Add(key);
request.SetObjectKeys(objects);
//执行请求
cosXml.DeleteMultiObjects(request,
    delegate(COSXML.Model.CosResult cosResult)
    {
        //请求成功
        DeleteMultiObjectResult  result = cosResult as DeleteMultiObjectResult ;
        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
quiet SetDeleteQuiet 结果返回模式:false,verbose 模式,true,quiet 模式 bool
keys SetObjectKeys 删除对象 key 的集合 List<string>
signStartTimeSecond SetSign 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 DeleteMultiObjectResult 返回请求结果。

成员变量 类型 描述
httpCode int HTTP Code, [200, 300)之间表示操作成功,否则表示操作失败
deleteResult DeleteResult 批量删除对象返回的结果

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

分块操作

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

  • 分块上传对象:初始化分块上传,上传分块,完成所有分块上传。

  • 分块续传:查询已上传的分块,上传分块,完成所有分块上传。

  • 删除已上传分块。

查询分块上传

功能说明

查询正在进行中的分块上传信息。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 ListMultiUploadsResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

初始化分块上传

功能说明

初始化分块上传任务。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 InitMultipartUploadResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

查询已上传块

功能说明

查询特定分块上传操作中的已上传的块。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 ListPartsResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

上传分块

功能说明

分块上传文件。

方法原型

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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 UploadPartResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

完成分块上传

功能说明

完成整个文件的分块上传。

方法原型

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 = cosResult 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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 CompleteMultipartUploadResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。

终止分块上传

功能说明

终止一个分块上传操作并删除已上传的块。

方法原型

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 = cosResult 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 签名有效期起始时间(Unix 时间戳),例如1557902800 long
durationSecond SetSign 签名有效期时长(单位为秒),例如签名有效时期为1分钟:60 long
headerKeys SetSign 签名是否校验 header List<string>
queryParameterKeys SetSign 签名是否校验请求 url 中查询参数 List<string>

返回结果说明

通过 AbortMultipartUploadResult 返回请求结果。

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

说明:

操作失败时,系统将抛出 CosClientException(客户端异常) 或 CosServerException(服务端异常)异常。