接口文档
最近更新时间: 2024-10-17 17:10: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(服务端异常)异常。