ListMultipartUploads.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Xml.Serialization;
  5. namespace COSXML.Model.Tag
  6. {
  7. /// <summary>
  8. /// 所有分块上传的信息
  9. /// <see href="https://cloud.tencent.com/document/product/436/7736"/>
  10. /// </summary>
  11. [XmlRoot("ListMultipartUploadsResult")]
  12. public sealed class ListMultipartUploads
  13. {
  14. /// <summary>
  15. /// 分块上传的目标 Bucket
  16. /// </summary>
  17. [XmlElement("Bucket")]
  18. public string bucket;
  19. /// <summary>
  20. /// 规定返回值的编码格式,合法值:url
  21. /// </summary>
  22. [XmlElement("Encoding-type")]
  23. public string encodingType;
  24. /// <summary>
  25. /// 列出条目从该 key 值开始
  26. /// </summary>
  27. [XmlElement("KeyMarker")]
  28. public string keyMarker;
  29. /// <summary>
  30. /// 列出条目从该 UploadId 值开始
  31. /// </summary>
  32. [XmlElement("UploadIdMarker")]
  33. public string uploadIdMarker;
  34. /// <summary>
  35. /// 假如返回条目被截断,则返回 NextKeyMarker 就是下一个条目的起点
  36. /// </summary>
  37. [XmlElement("NextKeyMarker")]
  38. public string nextKeyMarker;
  39. /// <summary>
  40. /// 假如返回条目被截断,则返回 UploadId 就是下一个条目的起点
  41. /// </summary>
  42. [XmlElement("NextUploadIdMarker")]
  43. public string nextUploadIdMarker;
  44. /// <summary>
  45. /// 设置最大返回的 multipart 数量,合法取值从 0 到 1000
  46. /// </summary>
  47. [XmlElement("MaxUploads")]
  48. public string maxUploads;
  49. /// <summary>
  50. /// 返回条目是否被截断,布尔值:TRUE,FALSE
  51. /// </summary>
  52. [XmlElement("IsTruncated")]
  53. public bool isTruncated;
  54. /// <summary>
  55. /// 限定返回的 Object key 必须以 Prefix 作为前缀。
  56. /// 注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix
  57. /// </summary>
  58. [XmlElement("Prefix")]
  59. public string prefix;
  60. /// <summary>
  61. /// 定界符为一个符号,
  62. /// 对 object 名字包含指定前缀且第一次出现 delimiter 字符之间的 object 作为一组元素:common prefix。
  63. /// 如果没有 prefix,则从路径起点开始
  64. /// </summary>
  65. [XmlElement("Delimiter")]
  66. public string delimiter;
  67. /// <summary>
  68. /// 每个 Upload 的信息
  69. /// <see href="Upload"/>
  70. /// </summary>
  71. [XmlElement("Upload")]
  72. public List<Upload> uploads;
  73. /// <summary>
  74. /// 将 prefix 到 delimiter 之间的相同路径归为一类,定义为 Common Prefix
  75. /// <see href="CommonPrefixes"/>
  76. /// </summary>
  77. [XmlElement("CommonPrefixes")]
  78. public List<CommonPrefixes> commonPrefixesList;
  79. public string GetInfo()
  80. {
  81. StringBuilder stringBuilder = new StringBuilder("{ListMultipartUploads:\n");
  82. stringBuilder.Append("Bucket:").Append(bucket).Append("\n");
  83. stringBuilder.Append("EncodingType:").Append(encodingType).Append("\n");
  84. stringBuilder.Append("KeyMarker:").Append(keyMarker).Append("\n");
  85. stringBuilder.Append("UploadIdMarker:").Append(uploadIdMarker).Append("\n");
  86. stringBuilder.Append("NextKeyMarker:").Append(nextKeyMarker).Append("\n");
  87. stringBuilder.Append("NextUploadIdMarker:").Append(nextUploadIdMarker).Append("\n");
  88. stringBuilder.Append("MaxUploads:").Append(maxUploads).Append("\n");
  89. stringBuilder.Append("IsTruncated:").Append(isTruncated).Append("\n");
  90. stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
  91. stringBuilder.Append("Delimiter:").Append(delimiter).Append("\n");
  92. if (uploads != null)
  93. {
  94. foreach (Upload upload in uploads)
  95. {
  96. if (upload != null)
  97. {
  98. stringBuilder.Append(upload.GetInfo()).Append("\n");
  99. }
  100. }
  101. }
  102. if (commonPrefixesList != null)
  103. {
  104. foreach (CommonPrefixes commonPrefix in commonPrefixesList)
  105. {
  106. if (commonPrefix != null)
  107. {
  108. stringBuilder.Append(commonPrefix.GetInfo()).Append("\n");
  109. }
  110. }
  111. }
  112. stringBuilder.Append("}");
  113. return stringBuilder.ToString();
  114. }
  115. public sealed class Upload
  116. {
  117. /// <summary>
  118. /// Object 的名称
  119. /// </summary>
  120. [XmlElement("Key")]
  121. public string key;
  122. /// <summary>
  123. /// 示本次分块上传的 ID
  124. /// </summary>
  125. [XmlElement("UploadId")]
  126. public string uploadID;
  127. /// <summary>
  128. /// 用来表示分块的存储级别,枚举值:STANDARD,STANDARD_IA,ARCHIVE
  129. /// </summary>
  130. [XmlElement("StorageClass")]
  131. public string storageClass;
  132. /// <summary>
  133. /// 用来表示本次上传发起者的信息
  134. /// <see href="initiator"/>
  135. /// </summary>
  136. [XmlElement("Initiator")]
  137. public Initiator initiator;
  138. /// <summary>
  139. /// 用来表示这些分块所有者的信息
  140. /// <see href="Owner"/>
  141. /// </summary>
  142. [XmlElement("Owner")]
  143. public Owner owner;
  144. /// <summary>
  145. /// 分块上传的起始时间
  146. /// </summary>
  147. [XmlElement("Initiated")]
  148. public string initiated;
  149. public string GetInfo()
  150. {
  151. StringBuilder stringBuilder = new StringBuilder("{Upload:\n");
  152. stringBuilder.Append("Key:").Append(key).Append("\n");
  153. stringBuilder.Append("UploadID:").Append(uploadID).Append("\n");
  154. stringBuilder.Append("StorageClass:").Append(storageClass).Append("\n");
  155. if (initiator != null)
  156. {
  157. stringBuilder.Append(initiator.GetInfo()).Append("\n");
  158. }
  159. if (owner != null)
  160. {
  161. stringBuilder.Append(owner.GetInfo()).Append("\n");
  162. }
  163. stringBuilder.Append("Initiated:").Append(initiated).Append("\n");
  164. stringBuilder.Append("}");
  165. return stringBuilder.ToString();
  166. }
  167. }
  168. public sealed class CommonPrefixes
  169. {
  170. /// <summary>
  171. /// 显示具体的 CommonPrefixes
  172. /// </summary>
  173. [XmlElement("Prefix")]
  174. public string prefix;
  175. public string GetInfo()
  176. {
  177. StringBuilder stringBuilder = new StringBuilder("{CommonPrefixes:\n");
  178. stringBuilder.Append("Prefix:").Append(prefix).Append("\n");
  179. stringBuilder.Append("}");
  180. return stringBuilder.ToString();
  181. }
  182. }
  183. public sealed class Initiator
  184. {
  185. /// <summary>
  186. /// 用户唯一的 CAM 身份 UIN
  187. /// </summary>
  188. [XmlElement("UIN")]
  189. public string uin;
  190. /// <summary>
  191. /// 用户唯一的 CAM 身份 ID
  192. /// </summary>
  193. [XmlElement("ID")]
  194. public string id;
  195. /// <summary>
  196. /// 用户身份 ID 的简称(UIN)
  197. /// </summary>
  198. [XmlElement("DisplayName")]
  199. public string displayName;
  200. public string GetInfo()
  201. {
  202. StringBuilder stringBuilder = new StringBuilder("{Initiator:\n");
  203. stringBuilder.Append("Uin:").Append(uin).Append("\n");
  204. stringBuilder.Append("Id:").Append(id).Append("\n");
  205. stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
  206. stringBuilder.Append("}");
  207. return stringBuilder.ToString();
  208. }
  209. }
  210. public sealed class Owner
  211. {
  212. /// <summary>
  213. /// 用户唯一的 CAM 身份 UID
  214. /// </summary>
  215. public string uid;
  216. /// <summary>
  217. /// 用户唯一的 CAM 身份 ID
  218. /// </summary>
  219. [XmlElement("ID")]
  220. public string id;
  221. /// <summary>
  222. /// 用户身份 ID 的简称(UIN)
  223. /// </summary>
  224. [XmlElement("DisplayName")]
  225. public string displayName;
  226. public string GetInfo()
  227. {
  228. StringBuilder stringBuilder = new StringBuilder("{Owner:\n");
  229. stringBuilder.Append("Uid:").Append(uid).Append("\n");
  230. stringBuilder.Append("Id:").Append(id).Append("\n");
  231. stringBuilder.Append("DisplayName:").Append(displayName).Append("\n");
  232. stringBuilder.Append("}");
  233. return stringBuilder.ToString();
  234. }
  235. }
  236. }
  237. }