首次推送

This commit is contained in:
lym
2026-03-09 00:13:46 +08:00
commit b19613bb31
13974 changed files with 2767735 additions and 0 deletions

View File

@@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/2/2018 9:48:29 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// <see cref="https://cloud.tencent.com/document/product/436/7733"/>
/// </summary>
public sealed class AccessControlPolicy
{
/// <summary>
/// Bucket 持有者信息
/// <see cref="Owner"/>
/// </summary>
public Owner owner;
/// <summary>
/// 被授权者信息与权限信息
/// <see cref="AccessControlList"/>
/// </summary>
public AccessControlList accessControlList;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{AccessControlPolicy:\n");
if (owner != null) stringBuilder.Append(owner.GetInfo()).Append("\n");
if (accessControlList != null) stringBuilder.Append(accessControlList.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Owner
{
/// <summary>
/// Bucket 持有者 ID
/// 格式qcs::cam::uin/<OwnerUin>:uin/<SubUin> 如果是根帐号,<OwnerUin> 和 <SubUin> 是同一个值
/// </summary>
public string id;
/// <summary>
/// Bucket 持有者的名称
/// </summary>
public string displayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class AccessControlList
{
/// <summary>
/// 单个 Bucket 的授权信息。一个 AccessControlList 可以拥有 100 条 Grant
/// <see cref="Grant"/>
/// </summary>
public List<Grant> grants;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{AccessControlList:\n");
if (grants != null)
{
foreach (Grant grant in grants)
{
if (grant != null) stringBuilder.Append(grant.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Grant
{
/// <summary>
/// 说明被授权者的信息,
/// <see cref="Grantee"/>
/// </summary>
public Grantee grantee;
/// <summary>
/// 指明授予被授权者的权限信息
/// <see cref="COSXML.Common.CosGrantPermission"/>
/// </summary>
public string permission;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Grant:\n");
if (grantee != null) stringBuilder.Append(grantee.GetInfo()).Append("\n");
stringBuilder.Append("Permission:").Append(permission).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Grantee
{
/// <summary>
/// 用户的 ID如果是根帐号格式为qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>
/// 如果是子帐号,格式为: qcs::cam::uin/<OwnerUin>:uin/<SubUin>
/// </summary>
public string id;
/// <summary>
/// 用户的名称
/// </summary>
public string displayName;
/// <summary>
/// 或 qcs::cam::anyone:anyone (指代所有用户).
/// </summary>
public string uri;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Grantee:\n");
if (uri != null) stringBuilder.Append("URI:").Append(uri).Append("\n");
if(id != null) stringBuilder.Append("Id:").Append(id).Append("\n");
if(displayName != null) stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class BucketLoggingStatus
{
public LoggingEnabled loggingEnabled;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{BucketLoggingStatus:\n");
if (loggingEnabled != null) stringBuilder.Append(loggingEnabled.ToString()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class LoggingEnabled
{
public string targetBucket;
public string targetPrefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{LoggingEnabled:\n");
stringBuilder.Append("TargetBucket:").Append(targetBucket).Append("\n");
stringBuilder.Append("TargetPrefix:").Append(targetPrefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
/// <summary>
/// <see cref="https://cloud.tencent.com/document/product/436/8274"/>
/// </summary>
public sealed class CORSConfiguration
{
/// <summary>
/// 跨域资源共享配置的信息最多可以包含100条 CORSRule
/// <see cref="CORSRule"/>
/// </summary>
public List<CORSRule> corsRules;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CORSConfiguration:\n");
if(corsRules != null){
foreach(CORSRule corsRule in corsRules){
if(corsRule != null) stringBuilder.Append(corsRule.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class CORSRule
{
/// <summary>
/// 配置规则的 ID可选填
/// </summary>
public string id;
/// <summary>
/// 允许的访问来源,支持通配符 *, 格式为:协议://域名[:端口]如http://www.qq.com
/// </summary>
public string allowedOrigin;
/// <summary>
/// 允许的 HTTP 操作枚举值GETPUTHEADPOSTDELETE
/// </summary>
public List<string> allowedMethods;
/// <summary>
/// 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符 *
/// </summary>
public List<string> allowedHeaders;
/// <summary>
/// 设置浏览器可以接收到的来自服务器端的自定义头部信息
/// </summary>
public List<string> exposeHeaders;
/// <summary>
/// 设置 OPTIONS 请求得到结果的有效期
/// </summary>
public int maxAgeSeconds;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CORSRule:\n");
stringBuilder.Append("ID:").Append(id).Append("\n");
stringBuilder.Append("AllowedOrigin:").Append(allowedOrigin).Append("\n");
if(allowedMethods != null){
foreach (string method in allowedMethods){
if(method != null)stringBuilder.Append("AllowedMethod:").Append(method).Append("\n");
}
}
if(allowedHeaders != null){
foreach (string header in allowedHeaders){
if(header != null)stringBuilder.Append("AllowedHeader:").Append(header).Append("\n");
}
}
if(exposeHeaders != null){
foreach (string exposeHeader in exposeHeaders){
if (exposeHeader != null) stringBuilder.Append("ExposeHeader:").Append(exposeHeader).Append("\n");
}
}
stringBuilder.Append("MaxAgeSeconds:").Append(maxAgeSeconds).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:51:33 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// 本次分块上传的所有信息
/// <see cref="https://cloud.tencent.com/document/product/436/7742"/>
/// </summary>
public sealed class CompleteMultipartUpload
{
/// <summary>
/// 本次分块上传中每个块的信息
/// <see cref="Part"/>
/// </summary>
public List<Part> parts;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CompleteMultipartUpload:\n");
if (parts != null)
{
foreach (Part part in parts)
{
stringBuilder.Append(part.GetInfo());
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
/**
* 本块编号 和 eTag值
*/
public sealed class Part
{
/// <summary>
/// 块编号
/// </summary>
public int partNumber;
/// <summary>
/// 每个块文件的 eTag 值
/// </summary>
public string eTag;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Part:\n");
stringBuilder.Append("PartNumber:").Append(partNumber).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:55:28 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// <see cref="https://cloud.tencent.com/document/product/436/7742"/>
/// </summary>
public sealed class CompleteResult
{
/// <summary>
/// 创建的Object的外网访问域名
/// </summary>
public string location;
/// <summary>
/// 分块上传的目标Bucket
/// </summary>
public string bucket;
/// <summary>
/// Object的名称
/// </summary>
public string key;
/// <summary>
/// 合并后对象的唯一标签值,该值不是对象内容的 MD5 校验值,仅能用于检查对象唯一性
/// </summary>
public string eTag;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CompleteMultipartUploadResult:\n");
stringBuilder.Append("Location:").Append(location).Append("\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:59:32 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// 复制结果返回信息
/// <see cref="https://cloud.tencent.com/document/product/436/10881"/>
/// </summary>
public sealed class CopyObject
{
/// <summary>
/// 返回文件的 MD5 算法校验值。ETag 的值可以用于检查 Object 的内容是否发生变化
/// </summary>
public string eTag;
/// <summary>
/// 返回文件最后修改时间GMT 格式
/// </summary>
public string lastModified;
/// <summary>
/// key 的 versionId
/// </summary>
public string versionId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CopyObject:\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("LastModified:").Append(lastModified).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,118 @@
using System;
using System.Collections.Generic;
using System.Text;
using COSXML.CosException;
using COSXML.Common;
using COSXML.Utils;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 7:54:35 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
public sealed class CopySourceStruct
{
/// <summary>
/// cos 服务的appid
/// </summary>
public string appid;
/// <summary>
/// 存储桶名称
/// </summary>
public string bucket;
/// <summary>
/// Bucket所属地域
/// </summary>
public string region;
/// <summary>
/// 对象键
/// </summary>
public string key;
/// <summary>
/// 对象的版本ID
/// </summary>
public string versionId;
/// <summary>
/// copy source with versionId
/// </summary>
/// <param name="appid"></param>
/// <param name="bucket"></param>
/// <param name="region"></param>
/// <param name="key"></param>
/// <param name="versionId"></param>
public CopySourceStruct(string appid, string bucket, string region, string key, string versionId)
{
this.appid = appid;
this.bucket = bucket;
this.region = region;
this.key = key;
this.versionId = versionId;
}
/// <summary>
/// copy source
/// </summary>
/// <param name="appid"></param>
/// <param name="bucket"></param>
/// <param name="region"></param>
/// <param name="key"></param>
public CopySourceStruct(string appid, string bucket, string region, string key)
: this(appid, bucket, region, key, null) { }
/// <summary>
/// check parameter
/// </summary>
public void CheckParameters()
{
if (bucket == null)
{
throw new CosClientException((int)CosClientError.INVALID_ARGUMENT, "copy source bucket = null");
}
if (key == null)
{
throw new CosClientException((int)CosClientError.INVALID_ARGUMENT, "copy source cosPath = null");
}
// if (appid == null)
// {
// throw new CosClientException((int)CosClientError.INVALID_ARGUMENT, "copy source appid = null");
// }
if (region == null)
{
throw new CosClientException((int)CosClientError.INVALID_ARGUMENT, "copy source region = null");
}
}
/// <summary>
/// get source with urlEncode
/// </summary>
/// <returns></returns>
public string GetCopySouce()
{
if (!key.StartsWith("/"))
{
key = "/" + key;
}
StringBuilder copySource = new StringBuilder();
copySource.Append(bucket);
if (!String.IsNullOrEmpty(appid) && !bucket.EndsWith("-" + appid))
{
copySource.Append("-")
.Append(appid);
}
copySource.Append(".").Append("cos").Append(".")
.Append(region).Append(".")
.Append("myqcloud.com")
.Append(URLEncodeUtils.EncodePathOfURL(key));
if (versionId != null)
{
copySource.Append("?versionId=").Append(versionId);
}
return copySource.ToString();
}
}
}

View File

@@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 12:13:21 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// cos server 返回的错误信息
/// <see cref="https://cloud.tencent.com/document/product/436/7730"/>
/// </summary>
public sealed class CosServerError
{
/// <summary>
/// 错误码
/// </summary>
public string code;
/// <summary>
/// 错误信息
/// </summary>
public string message;
/// <summary>
/// 资源地址
/// </summary>
public string resource;
/// <summary>
/// 请求ID
/// </summary>
public string requestId;
/// <summary>
/// 错误ID
/// </summary>
public string traceId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Error:\n");
stringBuilder.Append("Code:").Append(code).Append("\n");
stringBuilder.Append("Message:").Append(message).Append("\n");
stringBuilder.Append("Rresource:").Append(resource).Append("\n");
stringBuilder.Append("RequestId:").Append(requestId).Append("\n");
stringBuilder.Append("TraceId:").Append(traceId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:36:54 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
public sealed class Delete
{
public bool quiet;
public List<DeleteObject> deleteObjects;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Delete:\n");
stringBuilder.Append("Quiet:").Append(quiet).Append("\n");
if (deleteObjects != null)
{
foreach(DeleteObject deleteObject in deleteObjects)
{
stringBuilder.Append(deleteObject.GetInfo());
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class DeleteObject
{
public string key;
public string versionId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Object:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,113 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:42:16 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// 本次删除返回结果的方式和目标 Object
/// <see cref="https://cloud.tencent.com/document/product/436/8289"/>
/// </summary>
public sealed class DeleteResult
{
/// <summary>
/// 本次删除的成功 Object 信息
/// <see cref="Deleted"/>
/// </summary>
public List<Deleted> deletedList;
/// <summary>
/// 本次删除的失败 Object 信息
/// <see cref="Error"/>
/// </summary>
public List<Error> errorList;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{DeleteResult:\n");
if(deletedList != null)
{
foreach(Deleted deleted in deletedList)
{
if(deleted != null)stringBuilder.Append(deleted.GetInfo()).Append("\n");
}
}
if(errorList != null){
foreach(Error error in errorList)
{
if(error != null)stringBuilder.Append(error.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Deleted
{
/// <summary>
/// Object 的名称
/// </summary>
public string key;
/// <summary>
/// Object 的版本Id
/// </summary>
public string versionId;
/// <summary>
/// deleete marker
/// </summary>
public string deleteMarker;
/// <summary>
/// delete marker versionId
/// </summary>
public string deleteMarkerVersionId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Deleted:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("DeleteMarker:").Append(deleteMarker).Append("\n");
stringBuilder.Append("DeleteMarkerVersionId:").Append(deleteMarkerVersionId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Error
{
/// <summary>
/// 删除失败的 Object 的名称
/// </summary>
public string key;
/// <summary>
/// 删除失败的错误代码
/// </summary>
public string code;
/// <summary>
/// 删除失败的错误信息
/// </summary>
public string message;
/// <summary>
/// 删除失败的 Object 的 版本Id
/// </summary>
public string versionId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Error:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("Code:").Append(code).Append("\n");
stringBuilder.Append("Message:").Append(message).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,15 @@
namespace COSXML.Model.Tag
{
public sealed class DomainConfiguration
{
public DomainRule rule;
public sealed class DomainRule
{
public string Name;
public string Status;
public string Type;
public string Replace;
}
}
}

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
/// <summary>
/// 授予者信息
/// </summary>
public sealed class GrantAccount
{
List<string> idList;
public GrantAccount()
{
idList = new List<string>();
}
/// <summary>
/// ownerUin,根账号
/// subUin子账号
/// </summary>
/// <param name="ownerUin"></param>
/// <param name="subUin"></param>
public void AddGrantAccount(string ownerUin, string subUin)
{
if (ownerUin != null && subUin != null)
{
idList.Add(String.Format("id=\"qcs::cam::uin/{0}:uin/{1}\"", ownerUin, subUin));
}
}
public string GetGrantAccounts()
{
StringBuilder idBuilder = new StringBuilder();
foreach(string id in idList)
{
idBuilder.Append(id).Append(",");
}
string idStr = idBuilder.ToString();
int last = idStr.LastIndexOf(",");
if (last > 0)
{
return idStr.Substring(0, last);
}
return null;
}
}
}

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 12:01:43 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// 初始化上传返回的信息
/// <see cref="https://cloud.tencent.com/document/product/436/7746"/>
/// </summary>
public sealed class InitiateMultipartUpload
{
/// <summary>
/// 分片上传的目标 Bucket由用户自定义字符串和系统生成appid数字串由中划线连接而成mybucket-1250000000.
/// </summary>
public string bucket;
/// <summary>
/// Object 的名称
/// </summary>
public string key;
/// <summary>
/// 在后续上传中使用的 ID
/// </summary>
public string uploadId;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{InitiateMultipartUpload:\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("UploadId:").Append(uploadId).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class InventoryConfiguration
{
/** 清单的名称,与请求参数中的 id 对应 */
public string id;
/** 清单是否启用的标识。如果设置为 True清单功能将生效如果设置为 False将不生成任何清单 */
public bool isEnabled;
/** 是否在清单中包含对象版本 */
public string includedObjectVersions;
/** 筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象 */
public Filter filter;
/** 设置清单结果中应包含的分析项目 */
public OptionalFields optionalFields;
/** 配置清单任务周期 */
public Schedule schedule;
/** 描述存放清单结果的信息 */
public Destination destination;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{InventoryConfiguration:\n");
stringBuilder.Append("Id").Append(id).Append("\n");
stringBuilder.Append("IsEnabled:").Append(isEnabled).Append("\n");
if (destination != null) stringBuilder.Append(destination.GetInfo()).Append("\n");
if (schedule != null) stringBuilder.Append(schedule.GetInfo()).Append("\n");
if (filter != null) stringBuilder.Append(filter.GetInfo()).Append("\n");
stringBuilder.Append("IncludedObjectVersions:").Append(includedObjectVersions).Append("\n");
if (optionalFields != null) stringBuilder.Append(optionalFields.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Filter
{
public string prefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Filter:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class OptionalFields
{
public List<string> fields;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{OptionalFields:\n");
if (fields != null)
foreach (string field in fields)
{
stringBuilder.Append("Field:").Append(field).Append("\n");
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Schedule
{
public string frequency;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Schedule:\n");
stringBuilder.Append("Frequency:").Append(frequency).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Destination
{
public COSBucketDestination cosBucketDestination;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Destination:\n");
if (cosBucketDestination != null) stringBuilder.Append(cosBucketDestination.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class COSBucketDestination
{
public string format;
public string accountId;
public string bucket;
public string prefix;
public Encryption encryption;
public void setBucket(String region, String bucket)
{
if (region != null && bucket != null)
{
this.bucket = String.Format("qcs::cos:%s::%s", region, bucket);
}
}
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{COSBucketDestination:\n");
stringBuilder.Append("Format:").Append(format).Append("\n"); ;
stringBuilder.Append("AccountId:").Append(accountId).Append("\n"); ;
stringBuilder.Append("Bucket:").Append(bucket).Append("\n"); ;
stringBuilder.Append("Prefix:").Append(prefix).Append("\n"); ;
if (encryption != null)
{
stringBuilder.Append(encryption.GetInfo()).Append("\n");
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Encryption
{
public string sSECOS;
public String GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Encryption:\n");
stringBuilder.Append("SSE-COS:").Append(sSECOS).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,225 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class LifecycleConfiguration
{
/// <summary>
/// 规则描述
/// <see cref="Rule"/>
/// </summary>
public List<Rule> rules;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{LifecycleConfiguration:\n");
if(rules != null)
{
foreach (Rule rule in rules){
if(rule != null) stringBuilder.Append(rule.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Rule
{
/// <summary>
/// 用于唯一标识规则,长度不能超过 255 个字符
/// </summary>
public string id;
/// <summary>
/// Filter 用于描述规则影响的 Object 集合
/// <see cref="Filter"/>
/// </summary>
public Filter filter;
/// <summary>
/// 指明规则是否启用枚举值EnabledDisabled
/// </summary>
public string status;
/// <summary>
/// 规则转换属性,对象何时转换为 Standard_IA 或 Archive
/// <see cref="Transition"/>
/// </summary>
public Transition transition;
/// <summary>
/// 规则过期属性
/// <see cref="Expiration"/>
/// </summary>
public Expiration expiration;
/// <summary>
/// 指明非当前版本对象何时过期
/// <see cref="NoncurrentVersionExpiration"/>
/// </summary>
public NoncurrentVersionExpiration noncurrentVersionExpiration;
/// <summary>
/// 指明非当前版本对象何时转换为 STANDARD_IA 或 ARCHIVE
/// <see cref="NoncurrentVersionTransition"/>
/// </summary>
public NoncurrentVersionTransition noncurrentVersionTransition;
/// <summary>
/// 设置允许分片上传保持运行的最长时间
/// <see cref="AbortIncompleteMultiUpload"/>
/// </summary>
public AbortIncompleteMultiUpload abortIncompleteMultiUpload;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Rule:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
if (filter != null) stringBuilder.Append(filter.GetInfo()).Append("\n");
stringBuilder.Append("Status:").Append(status).Append("\n");
if (transition != null) stringBuilder.Append(transition.GetInfo()).Append("\n");
if (expiration != null) stringBuilder.Append(expiration.GetInfo()).Append("\n");
if (noncurrentVersionExpiration != null) stringBuilder.Append(noncurrentVersionExpiration.GetInfo()).Append("\n");
if (noncurrentVersionTransition != null) stringBuilder.Append(noncurrentVersionTransition.GetInfo()).Append("\n");
if (abortIncompleteMultiUpload != null) stringBuilder.Append(abortIncompleteMultiUpload.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Filter
{
/// <summary>
/// 指定规则所适用的前缀。匹配前缀的对象受该规则影响Prefix 最多只能有一个
/// </summary>
public string prefix;
public FilterAnd filterAnd;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Filter:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
if(filterAnd != null)stringBuilder.Append(filterAnd.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class FilterAnd
{
public string prefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{And:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Transition
{
/// <summary>
/// 指明规则对应的动作在对象最后的修改日期过后多少天操作
/// </summary>
public int days;
/// <summary>
/// 指明规则对应的动作在何时操作
/// </summary>
public string date;
/// <summary>
/// 指定 Object 转储到的目标存储类型,枚举值: STANDARD_IA, ARCHIVE
/// <see cref="COSXML.Common.CosStorageClass"/>
/// </summary>
public string storageClass;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Transition:\n");
stringBuilder.Append("Days:").Append(days).Append("\n");
stringBuilder.Append("Date:").Append(date).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Expiration
{
/// <summary>
/// 指明规则对应的动作在何时操作
/// </summary>
public string date;
/// <summary>
/// 指明规则对应的动作在对象最后的修改日期过后多少天操作
/// </summary>
public int days;
/// <summary>
/// 删除过期对象删除标记,取值为 truefalse
/// </summary>
public bool? expiredObjectDeleteMarker;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Expiration:\n");
stringBuilder.Append("Days:").Append(days).Append("\n");
stringBuilder.Append("Date:").Append(date).Append("\n");
stringBuilder.Append("ExpiredObjectDeleteMarker:").Append(expiredObjectDeleteMarker).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class NoncurrentVersionExpiration
{
/// <summary>
/// 指明规则对应的动作在对象变成非当前版本多少天后执行
/// </summary>
public int noncurrentDays;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{NoncurrentVersionExpiration:\n");
stringBuilder.Append("NoncurrentDays:").Append(noncurrentDays).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class NoncurrentVersionTransition
{
/// <summary>
/// 指明规则对应的动作在对象变成非当前版本多少天后执行
/// </summary>
public int noncurrentDays;
/// <summary>
/// 指定 Object 转储到的目标存储类型
/// <see cref="COSXML.Common.CosStorageClass"/>
/// </summary>
public string storageClass;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{NoncurrentVersionTransition:\n");
stringBuilder.Append("NoncurrentDays:").Append(noncurrentDays).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class AbortIncompleteMultiUpload
{
/// <summary>
/// 指明分片上传开始后多少天内必须完成上传
/// </summary>
public int daysAfterInitiation;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{AbortIncompleteMultiUpload:\n");
stringBuilder.Append("DaysAfterInitiation:").Append(daysAfterInitiation).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/2/2018 5:52:22 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
/// <summary>
/// <see cref="https://cloud.tencent.com/document/product/436/8291"/>
/// </summary>
public sealed class ListAllMyBuckets
{
/// <summary>
/// Bucket 持有者的信息
/// <see cref="Owner"/>
/// </summary>
public Owner owner;
/// <summary>
/// 本次响应的所有 Bucket 列表信息
/// <see cref="Bucket"/>
/// </summary>
public List<Bucket> buckets;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListAllMyBuckets:\n");
if (owner != null) stringBuilder.Append(owner.GetInfo()).Append("\n");
stringBuilder.Append("Buckets:\n");
if (buckets != null)
{
foreach (Bucket bucket in buckets)
{
if (bucket != null) stringBuilder.Append(bucket.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}").Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Owner
{
/// <summary>
/// Bucket 所有者的 ID
/// </summary>
public string id;
/// <summary>
/// Bucket 所有者的名字信息
/// </summary>
public string disPlayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("ID:").Append(id).Append("\n");
stringBuilder.Append("DisPlayName:").Append(disPlayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Bucket
{
/// <summary>
/// Bucket 的名称
/// </summary>
public string name;
/// <summary>
/// Bucket 所在地域
/// </summary>
public string location;
/// <summary>
/// Bucket 创建时间。ISO8601 格式
/// </summary>
public string createDate;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Bucket:\n");
stringBuilder.Append("Name:").Append(name).Append("\n");
stringBuilder.Append("Location:").Append(location).Append("\n");
stringBuilder.Append("CreateDate:").Append(createDate).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,156 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
/// <summary>
/// 保存 Get Bucket 请求结果的所有信息
/// <see cref="https://cloud.tencent.com/document/product/436/7734#.E8.AF.B7.E6.B1.82.E7.A4.BA.E4.BE.8B"/>
/// </summary>
public sealed class ListBucket
{
/// <summary>
/// Bucket 的名称
/// </summary>
public string name;
/// <summary>
/// 编码格式
/// </summary>
public string encodingType;
/// <summary>
/// 前缀匹配,用来规定响应请求返回的文件前缀地址
/// </summary>
public string prefix;
/// <summary>
/// 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始
/// </summary>
public string marker;
/// <summary>
/// 单次响应请求内返回结果的最大的条目数量
/// </summary>
public int maxKeys;
/// <summary>
/// 响应请求条目是否被截断布尔值truefalse
/// </summary>
public bool isTruncated;
/// <summary>
/// 假如返回条目被截断,则返回 NextMarker 就是下一个条目的起点
/// </summary>
public string nextMarker;
/// <summary>
/// 对象元数据信息列表
/// <see cref="Contents"/>
/// </summary>
public List<Contents> contentsList;
/// <summary>
/// 将 Prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix
/// <see cref="CommonPrefixes"/>
/// </summary>
public List<CommonPrefixes> commonPrefixesList;
public string delimiter;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListBucket:\n");
stringBuilder.Append("Name:").Append(name).Append("\n");
stringBuilder.Append("Encoding-Type:").Append(encodingType).Append("\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("Marker:").Append(marker).Append("\n");
stringBuilder.Append("MaxKeys:").Append(maxKeys).Append("\n");
stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
stringBuilder.Append("NextMarker:").Append(nextMarker).Append("\n");
if(contentsList != null)
{
foreach (Contents contents in contentsList)
{
if(contents != null)stringBuilder.Append(contents.GetInfo()).Append("\n");
}
}
if(commonPrefixesList != null)
{
foreach (CommonPrefixes commonPrefixes in commonPrefixesList)
{
if(commonPrefixes != null)stringBuilder.Append(commonPrefixes.GetInfo()).Append("\n");
}
}
stringBuilder.Append("Delimiter:").Append(delimiter).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Contents
{
/// <summary>
/// Object 的 Key
/// </summary>
public string key;
/// <summary>
/// Object 最后被修改时间
/// </summary>
public string lastModified;
/// <summary>
/// 文件的 eTag
/// </summary>
public string eTag;
/// <summary>
/// 文件大小,单位是 Byte
/// </summary>
public long size;
/// <summary>
/// Bucket 持有者信息
/// <see cref="Owner"/>
/// </summary>
public Owner owner;
/// <summary>
/// Object 的存储级别枚举值STANDARDSTANDARD_IAARCHIVE
/// <see cref="COSXML.Common.CosStorageClass"/>
/// </summary>
public string storageClass;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Contents:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("LastModified:").Append(lastModified).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("Size:").Append(size).Append("\n");
if (owner != null)stringBuilder.Append(owner.GetInfo()).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class CommonPrefixes{
/// <summary>
/// 单条 Common 的前缀
/// </summary>
public string prefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CommonPrefixes:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Owner{
/// <summary>
/// Bucket 的 AppID
/// </summary>
public string id;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,137 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class ListBucketVersions
{
public string encodingType;
public string name;
public string prefix;
public string keyMarker;
public string versionIdMarker;
public long maxKeys;
public bool isTruncated;
public string nextKeyMarker;
public string delimiter;
public string nextVersionIdMarker;
public List<ObjectVersion> objectVersionList;
public List<CommonPrefixes> commonPrefixesList;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListVersionsResult:\n");
stringBuilder.Append("Name:").Append(name).Append("\n");
stringBuilder.Append("EncodingType:").Append(encodingType).Append("\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("Delimiter:").Append(delimiter).Append("\n");
stringBuilder.Append("KeyMarker:").Append(keyMarker).Append("\n");
stringBuilder.Append("VersionIdMarker:").Append(versionIdMarker).Append("\n");
stringBuilder.Append("MaxKeys:").Append(maxKeys).Append("\n");
stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
stringBuilder.Append("NextKeyMarker:").Append(nextKeyMarker).Append("\n");
stringBuilder.Append("NextVersionIdMarker:").Append(nextVersionIdMarker).Append("\n");
if(objectVersionList != null)
{
foreach(ObjectVersion objectVersion in objectVersionList)
{
if(objectVersion != null) stringBuilder.Append(objectVersion.GetInfo()).Append("\n");
}
}
if (commonPrefixesList != null)
{
foreach (CommonPrefixes commonPrefixes in commonPrefixesList)
{
if (commonPrefixes != null) stringBuilder.Append(commonPrefixes.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public abstract class ObjectVersion
{
public string key;
public string versionId;
public bool isLatest;
public string lastModified;
public Owner owner;
public abstract string GetInfo();
}
public sealed class Owner
{
public string uid;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("Uid:").Append(uid).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class DeleteMarker : ObjectVersion{
public override string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{DeleteMarker:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("IsLatest:").Append(isLatest).Append("\n");
stringBuilder.Append("LastModified:").Append(lastModified).Append("\n");
if(owner != null)
{
stringBuilder.Append(owner.GetInfo()).Append("\n");
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Version : ObjectVersion
{
public string eTag;
public long size;
public string storageClass;
public override string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Version:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("VersionId:").Append(versionId).Append("\n");
stringBuilder.Append("IsLatest:").Append(isLatest).Append("\n");
stringBuilder.Append("LastModified:").Append(lastModified).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("Size:").Append(size).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
if(owner != null)
{
stringBuilder.Append(owner.GetInfo()).Append("\n");
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class CommonPrefixes
{
/// <summary>
/// 显示具体的 CommonPrefixes
/// </summary>
public string prefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CommonPrefixes:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class ListInventoryConfiguration
{
public List<InventoryConfiguration> inventoryConfigurations;
public bool isTruncated = false;
public string continuationToken;
public string nextContinuationToken;
public String GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListInventoryConfigurationResult\n");
stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
if (continuationToken != null) stringBuilder.Append("ContinuationToken:").Append(continuationToken).Append("\n");
if (nextContinuationToken != null) stringBuilder.Append("NextContinuationToken:").Append(nextContinuationToken).Append("\n");
if (inventoryConfigurations != null)
{
foreach (InventoryConfiguration inventoryConfiguration in inventoryConfigurations)
{
if (inventoryConfiguration != null) stringBuilder.Append(inventoryConfiguration.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
/// <summary>
/// 所有分块上传的信息
/// <see cref="https://cloud.tencent.com/document/product/436/7736"/>
/// </summary>
public sealed class ListMultipartUploads
{
/// <summary>
/// 分块上传的目标 Bucket
/// </summary>
public string bucket;
/// <summary>
/// 规定返回值的编码格式合法值url
/// </summary>
public string encodingType;
/// <summary>
/// 列出条目从该 key 值开始
/// </summary>
public string keyMarker;
/// <summary>
/// 列出条目从该 UploadId 值开始
/// </summary>
public string uploadIdMarker;
/// <summary>
/// 假如返回条目被截断,则返回 NextKeyMarker 就是下一个条目的起点
/// </summary>
public string nextKeyMarker;
/// <summary>
/// 假如返回条目被截断,则返回 UploadId 就是下一个条目的起点
/// </summary>
public string nextUploadIdMarker;
/// <summary>
/// 设置最大返回的 multipart 数量,合法取值从 0 到 1000
/// </summary>
public string maxUploads;
/// <summary>
/// 返回条目是否被截断布尔值TRUEFALSE
/// </summary>
public bool isTruncated;
/// <summary>
/// 限定返回的 Object key 必须以 Prefix 作为前缀。
/// 注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix
/// </summary>
public string prefix;
/// <summary>
/// 定界符为一个符号,
/// 对 object 名字包含指定前缀且第一次出现 delimiter 字符之间的 object 作为一组元素common prefix。
/// 如果没有 prefix则从路径起点开始
/// </summary>
public string delimiter;
/// <summary>
/// 每个 Upload 的信息
/// <see cref="Upload"/>
/// </summary>
public List<Upload> uploads;
/// <summary>
/// 将 prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix
/// <see cref="CommonPrefixes"/>
/// </summary>
public List<CommonPrefixes> commonPrefixesList;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListMultipartUploads:\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("EncodingType:").Append(encodingType).Append("\n");
stringBuilder.Append("KeyMarker:").Append(keyMarker).Append("\n");
stringBuilder.Append("UploadIdMarker:").Append(uploadIdMarker).Append("\n");
stringBuilder.Append("NextKeyMarker:").Append(nextKeyMarker).Append("\n");
stringBuilder.Append("NextUploadIdMarker:").Append(nextUploadIdMarker).Append("\n");
stringBuilder.Append("MaxUploads:").Append(maxUploads).Append("\n");
stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("Delimiter:").Append(delimiter).Append("\n");
if (uploads != null)
{
foreach (Upload upload in uploads)
{
if (upload != null) stringBuilder.Append(upload.GetInfo()).Append("\n");
}
}
if (commonPrefixesList != null)
{
foreach (CommonPrefixes commonPrefix in commonPrefixesList)
{
if (commonPrefix != null) stringBuilder.Append(commonPrefix.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Upload
{
/// <summary>
/// Object 的名称
/// </summary>
public string key;
/// <summary>
/// 示本次分块上传的 ID
/// </summary>
public string uploadID;
/// <summary>
/// 用来表示分块的存储级别枚举值STANDARDSTANDARD_IAARCHIVE
/// <see cref="COSXML.Common.CosRegion"/>
/// </summary>
public string storageClass;
/// <summary>
/// 用来表示本次上传发起者的信息
/// <see cref="initiator"/>
/// </summary>
public Initiator initiator;
/// <summary>
/// 用来表示这些分块所有者的信息
/// <see cref="Owner"/>
/// </summary>
public Owner owner;
/// <summary>
/// 分块上传的起始时间
/// </summary>
public string initiated;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Upload:\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("UploadID:").Append(uploadID).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
if (initiator != null) stringBuilder.Append(initiator.GetInfo()).Append("\n");
if (owner != null) stringBuilder.Append(owner.GetInfo()).Append("\n");
stringBuilder.Append("Initiated:").Append(initiated).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class CommonPrefixes
{
/// <summary>
/// 显示具体的 CommonPrefixes
/// </summary>
public string prefix;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CommonPrefixes:\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Initiator
{
/// <summary>
/// 用户唯一的 CAM 身份 UIN
/// </summary>
public string uin;
/// <summary>
/// 用户唯一的 CAM 身份 ID
/// </summary>
public string id;
/// <summary>
/// 用户身份 ID 的简称UIN
/// </summary>
public string displayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Initiator:\n");
stringBuilder.Append("Uin:").Append(uin).Append("\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Owner
{
/// <summary>
/// 用户唯一的 CAM 身份 UID
/// </summary>
public string uid;
/// <summary>
/// 用户唯一的 CAM 身份 ID
/// </summary>
public string id;
/// <summary>
/// 用户身份 ID 的简称UIN
/// </summary>
public string displayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("Uid:").Append(uid).Append("\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,167 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 12:03:35 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
public sealed class ListParts
{
/// <summary>
/// 分块上传的目标 Bucke
/// </summary>
public string bucket;
/// <summary>
/// 规定返回值的编码方式
/// </summary>
public string encodingType;
/// <summary>
/// Object 的名称
/// </summary>
public string key;
/// <summary>
/// 本次分块上传的 uploadID
/// </summary>
public string uploadId;
/// <summary>
/// 表示这些分块所有者的信息
/// </summary>
public Owner owner;
/// <summary>
/// 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始
/// </summary>
public string partNumberMarker;
/// <summary>
/// 表示本次上传发起者的信息
/// <see cref="Initiator"/>
/// </summary>
public Initiator initiator;
/// <summary>
/// 表示这些分块的存储级别
/// </summary>
public string storageClass;
/// <summary>
/// 假如返回条目被截断,则返回 nextPartNumberMarker 就是下一个条目的起点
/// </summary>
public string nextPartNumberMarker;
/// <summary>
/// 单次返回最大的条目数量
/// </summary>
public string maxParts;
/// <summary>
/// 返回条目是否被截断布尔值TRUEFALSE
/// </summary>
public bool isTruncated;
/// <summary>
/// 表示每一个块的信息
/// <see cref="Part"/>
/// </summary>
public List<Part> parts;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ListParts:\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("EncodingType:").Append(encodingType).Append("\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("UploadId:").Append(uploadId).Append("\n");
if(owner != null)stringBuilder.Append(owner.GetInfo()).Append("\n");
stringBuilder.Append("PartNumberMarker:").Append(partNumberMarker).Append("\n");
if(initiator != null) stringBuilder.Append(initiator.GetInfo()).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
stringBuilder.Append("NextPartNumberMarker:").Append(nextPartNumberMarker).Append("\n");
stringBuilder.Append("MaxParts:").Append(maxParts).Append("\n");
stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
if(parts != null)
{
foreach(Part part in parts)
{
if(part != null)stringBuilder.Append(part.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Owner
{
/**
* 创建者的一个唯一标识
*/
public string id;
/**
* 创建者的用户名描述
*/
public string disPlayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("DisPlayName:").Append(disPlayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Initiator
{
/// <summary>
/// 创建者的一个唯一标识
/// </summary>
public string id;
/// <summary>
/// 创建者的用户名描述
/// </summary>
public string disPlayName;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Initiator:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("DisPlayName:").Append(disPlayName).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Part
{
/// <summary>
/// 块的编号
/// </summary>
public string partNumber;
/// <summary>
/// 块最后修改时间
/// </summary>
public string lastModified;
/// <summary>
/// Object 块的 MD5 算法校验值
/// </summary>
public string eTag;
/// <summary>
/// 块大小,单位 Byte
/// </summary>
public string size;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Part:\n");
stringBuilder.Append("PartNumber:").Append(partNumber).Append("\n");
stringBuilder.Append("LastModified:").Append(lastModified).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("Size:").Append(size).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
/// <summary>
/// 地域信息
/// <see cref="https://cloud.tencent.com/document/product/436/8275"/>
/// </summary>
public sealed class LocationConstraint
{
/// <summary>
/// Bucket 所在地域
/// <see cref="COSXML.Common.CosRegion"/>
/// </summary>
public string location;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{LocationConstraint:\n");
stringBuilder.Append("Location:").Append(location).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,42 @@
using System.Collections.Generic;
namespace COSXML.Model.Tag {
public sealed class ObjectSelectionFormat {
public readonly string CompressionType;
public readonly CSVFormat csvFormat;
public readonly JSONFormat jsonFormat;
public ObjectSelectionFormat(string CompressionType, CSVFormat csv) {
this.CompressionType = CompressionType;
this.csvFormat = csv;
this.jsonFormat = null;
}
public ObjectSelectionFormat(string CompressionType, JSONFormat json) {
this.CompressionType = CompressionType;
this.csvFormat = null;
this.jsonFormat = json;
}
public sealed class CSVFormat {
public string FileHeaderInfo;
public string RecordDelimiter;
public string FieldDelimiter;
public string QuoteCharacter;
public string QuoteEscapeCharacter;
public string Comments;
public bool AllowQuotedRecordDelimiter;
public string QuoteFields;
}
public sealed class JSONFormat {
public string Type;
public string RecordDelimiter;
}
}
}

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Text;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 12:06:59 PM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
public sealed class PostResponse
{
/// <summary>
/// 对象的完整路径。
/// </summary>
public string location;
/// <summary>
/// 对象所在的存储桶
/// </summary>
public string bucket;
/// <summary>
/// 对象 key 名
/// </summary>
public string key;
/// <summary>
/// 对象Etag 内容
/// </summary>
public string eTag;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{PostResponse:\n");
stringBuilder.Append("Location:").Append(location).Append("\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("Key:").Append(key).Append("\n");
stringBuilder.Append("ETag:").Append(eTag).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class PreSignatureStruct
{
/// <summary>
/// cos 服务的appid
/// </summary>
public string appid;
/// <summary>
/// 存储桶名称
/// </summary>
public string bucket;
/// <summary>
/// Bucket所属地域
/// </summary>
public string region;
/// <summary>
/// 设置 host
/// </summary>
public string host;
/// <summary>
/// 对象键
/// </summary>
public string key;
/// <summary>
/// true:https; false: http
/// </summary>
public bool isHttps;
/// <summary>
/// http request method : get , put , etc.
/// </summary>
public string httpMethod;
/// <summary>
/// 签名需要校验的url中查询参数
/// </summary>
public Dictionary<string, string> queryParameters;
/// <summary>
/// 签名需要校验的headers
/// </summary>
public Dictionary<string, string> headers;
/// <summary>
/// 签名 sign的有效期若 小于 0则取keyTime.
/// </summary>
public long signDurationSecond;
}
}

View File

@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class ReplicationConfiguration
{
public string role;
public List<Rule> rules;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{ReplicationConfiguration:\n");
stringBuilder.Append("Role:").Append(role).Append("\n");
if(rules != null)
{
foreach(Rule rule in rules)
{
if (rule != null) stringBuilder.Append(rule.GetInfo()).Append("\n");
}
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class Rule
{
public string id;
public string status;
public string prefix;
public Destination destination;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Rule:\n");
stringBuilder.Append("Id:").Append(id).Append("\n");
stringBuilder.Append("Status:").Append(status).Append("\n");
stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
if (destination != null) stringBuilder.Append(destination.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public sealed class Destination
{
public string bucket;
public string storageClass;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{Destination:\n");
stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
using System.Collections.Generic;
using System.Text;
using COSXML.Common;
using COSXML.Utils;
/**
* Copyright (c) 2018 Tencent Cloud. All rights reserved.
* 11/5/2018 11:46:17 AM
* bradyxiao
*/
namespace COSXML.Model.Tag
{
public sealed class RestoreConfigure
{
/// <summary>
/// 设置临时副本的过期时间
/// </summary>
public int days;
/// <summary>
/// 归档存储工作参数配置
/// <see cref="CASJobParameters"/>
/// </summary>
public CASJobParameters casJobParameters;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{RestoreRequest:\n");
stringBuilder.Append("Days:").Append(days).Append("\n");
if(casJobParameters != null)stringBuilder.Append(casJobParameters.GetInfo()).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
public sealed class CASJobParameters
{
/// <summary>
/// 恢复数据时Tier 可以指定为 CAS 支持的三种恢复类型,分别为 Expedited、Standard、Bulk
/// <see cref="Tier"/>
/// </summary>
public Tier tier = Tier.Standard;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{CASJobParameters:\n");
stringBuilder.Append("Tier:").Append(EnumUtils.GetValue(tier)).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
public enum Tier
{
[CosValue("Expedited")]
Expedited = 0,
[CosValue("Standard")]
Standard,
[CosValue("Bulk")]
Bulk
}
}
}

View File

@@ -0,0 +1,35 @@
using System.Collections.Generic;
namespace COSXML.Model.Tag {
public sealed class Tagging {
public readonly TagSet tagSet;
public Tagging() {
this.tagSet = new TagSet();
}
public void AddTag(string key, string value) {
this.tagSet.tags.Add(new Tag(key, value));
}
public sealed class TagSet {
public readonly List<Tag> tags;
public TagSet() {
this.tags = new List<Tag>();
}
}
public sealed class Tag {
public readonly string key;
public readonly string value;
public Tag(string key, string value) {
this.key = key;
this.value = value;
}
}
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Tag
{
public sealed class VersioningConfiguration
{
public string status;
public string GetInfo()
{
StringBuilder stringBuilder = new StringBuilder("{VersioningConfiguration:\n");
stringBuilder.Append("Status:").Append(status).Append("\n");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
}
}

View File

@@ -0,0 +1,46 @@

namespace COSXML.Model.Tag
{
public sealed class WebsiteConfiguration
{
public IndexDocument indexDocument;
public ErrorDocument errorDocument;
public RedirectAllRequestTo redirectAllRequestTo;
public System.Collections.Generic.List<RoutingRule> routingRules;
public sealed class IndexDocument
{
public string suffix;
}
public sealed class ErrorDocument
{
public string key;
}
public sealed class RedirectAllRequestTo
{
public string protocol;
}
public sealed class RoutingRule
{
public Contidion contidion;
public Redirect redirect;
}
public sealed class Contidion
{
public int httpErrorCodeReturnedEquals;
public string keyPrefixEquals;
}
public sealed class Redirect
{
public string protocol;
public string replaceKeyWith;
public string replaceKeyPrefixWith;
}
}
}