index.d.ts 125 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289
  1. /**
  2. * 腾讯云 COS JavaScript SDK 类型声明
  3. */
  4. /**
  5. * 定义 COS 命名空间,方便导出用到的变量类型给外部引用
  6. */
  7. declare namespace COS {
  8. /** 存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */
  9. type Bucket = string;
  10. /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
  11. type Region = string;
  12. /** 请求的对象键,最前面不带 /,例如 images/1.jpg */
  13. type Key = string;
  14. /** 请求路径,最前面带 /,例如 /images/1.jpg */
  15. type Pathname = string;
  16. /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */
  17. type VersionId = string;
  18. /** 前缀匹配,用来规定返回的文件前缀地址 */
  19. type Prefix = string;
  20. /** 分块上传的任务 ID */
  21. type UploadId = string;
  22. /** 标识本次分块上传的编号,范围在1 - 10000 */
  23. type PartNumber = number;
  24. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  25. type Location = string;
  26. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  27. type ETag = string;
  28. /** COS API 使用的时间字符串,为 ISO8601 格式,例如2019-05-24T10:56:40Z */
  29. type IsoDateTime = string;
  30. /** 请求里的 Url Query 参数 */
  31. type Query = Record<string, any>;
  32. /** 请求里的 Header 参数 */
  33. type Headers = Record<string, any>;
  34. /** 请求里的 URL 中对象存储 API 接口名,如 acl、tagging 等 */
  35. type Action = string;
  36. /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中 */
  37. type Delimiter = '/' | string;
  38. /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */
  39. type EncodingType = 'url' | string;
  40. /** 上传的文件内容 */
  41. type UploadBody = File | Blob | String | ArrayBuffer;
  42. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  43. type StorageClass = 'STANDARD' | 'STANDARD_IA' | 'ARCHIVE' | 'DEEP_ARCHIVE' | 'INTELLIGENT_TIERING' | 'MAZ_STANDARD' | 'MAZ_STANDARD_IA' | 'MAZ_INTELLIGENT_TIERING';
  44. /** 请求方法 */
  45. type Method = 'GET' | 'DELETE' | 'POST' | 'PUT' | 'OPTIONS' | 'get' | 'delete' | 'post' | 'put' | 'options';
  46. /** 权限信息,枚举值:READ | WRITE | READ_ACP | WRITE_ACP | FULL_CONTROL 腾讯云对象存储 COS 在资源 ACL 上支持的操作实际上是一系列的操作集合,对于存储桶和对象 ACL 来说分别代表不同的含义。 */
  47. type Permission = 'READ' | 'WRITE' | 'READ_ACP' | 'WRITE_ACP' | 'FULL_CONTROL';
  48. /** 存储桶的预设 ACL @see https://cloud.tencent.com/document/product/436/30752#.E9.A2.84.E8.AE.BE.E7.9A.84-acl */
  49. type BucketACL = 'private' | 'public-read' | 'public-read-write' | 'authenticated-read';
  50. /** 对象的预设 ACL @see https://cloud.tencent.com/document/product/436/30752#.E9.A2.84.E8.AE.BE.E7.9A.84-acl */
  51. type ObjectACL = 'default' | 'private' | 'public-read' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-contro';
  52. /** 二进制值的字符串,'true' | 'false' */
  53. type BooleanString = 'true' | 'false';
  54. /** 所有者的信息 */
  55. type Owner = {
  56. /** 存储桶持有者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 */
  57. ID: string,
  58. };
  59. /** 所有者的信息 */
  60. type GroupOwner = {
  61. /** 预设用户组,格式为 http://cam.qcloud.com/groups/global/AllUsers (匿名用户组) 或 http://cam.qcloud.com/groups/global/AuthenticatedUsers (认证用户组) 。参见 {@link https://cloud.tencent.com/document/product/436/30752#.E8.BA.AB.E4.BB.BD-grantee| ACL 概述} */
  62. URI: string,
  63. };
  64. /** 上传发起者的信息 */
  65. type Initiator = Owner;
  66. /** 单个授权信息 */
  67. type Grant = string;
  68. /** 被授权者信息与权限信息 */
  69. interface Grants {
  70. /** 所有者的信息 */
  71. Grantee: Owner | GroupOwner,
  72. /** 权限信息,枚举值:READ | WRITE | READ_ACP | WRITE_ACP | FULL_CONTROL 腾讯云对象存储 COS 在资源 ACL 上支持的操作实际上是一系列的操作集合,对于存储桶和对象 ACL 来说分别代表不同的含义。 */
  73. Permission: Permission,
  74. }
  75. /** 存储桶/对象标签信息 */
  76. interface Tag {
  77. /** 标签的 Key,长度不超过128字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 */
  78. Key: Key,
  79. /** 标签的 Value,长度不超过256字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 */
  80. Value: string,
  81. }
  82. /** 用来说明本次分块上传中每个块的信息 */
  83. interface Part {
  84. /** 标识本次分块上传的编号,范围在1 - 10000 */
  85. PartNumber: PartNumber,
  86. /** 使用 Upload Part 请求上传分块成功后返回的 ETag 响应头部的值 */
  87. ETag: ETag,
  88. }
  89. /** 当前需要用凭证的请求,需要的最小权限 */
  90. type Scope = {
  91. /** 需要的权限 */
  92. action: string,
  93. /** 操作的存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */
  94. bucket: Bucket,
  95. /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
  96. region: Region,
  97. /** 前缀匹配,用来规定返回的文件前缀地址,支持 * 结尾 */
  98. prefix: Prefix
  99. }[];
  100. /** onProgress 回调的进度信息 */
  101. interface ProgressInfo {
  102. /** 已上传/下载的字节数,单位 B(字节) */
  103. loaded: number,
  104. /** 要上传/下载的文件的大小,单位 B(字节) */
  105. total: number,
  106. /** 速度,单位 B/s */
  107. speed: number,
  108. /** 进度百分比,范围是 0-1,保留两位小数 */
  109. percent: number,
  110. }
  111. /** 上传/下载的进度回调方法 */
  112. type onProgress = (params: ProgressInfo) => any;
  113. // 实例参数
  114. interface COSOptions {
  115. /** 固定密钥的 SecretId,可从{@link https://console.cloud.tencent.com/cam/capi|API密钥管理}获取 */
  116. SecretId?: string,
  117. /** 固定密钥的 SecretKey,可从{@link https://console.cloud.tencent.com/cam/capi|API密钥管理}获取 */
  118. SecretKey?: string,
  119. /** 如果传入 SecretId、SecretKey 是临时密钥,需要再传入一个临时密钥的 sessionToken */
  120. SecurityToken?: string,
  121. /** 同 SecurityToken,推荐用 SecurityToken */
  122. XCosSecurityToken?: string,
  123. /** 分块上传及分块复制时,出错重试次数,默认值3(加第一次,请求共4次) */
  124. ChunkRetryTimes?: number,
  125. /** 同一个实例下上传的文件并发数,默认值3 */
  126. FileParallelLimit?: number,
  127. /** 同一个上传文件的分块并发数,默认值3 */
  128. ChunkParallelLimit?: number,
  129. /** 分块上传时,每片的字节数大小,默认值1048576(1MB) */
  130. ChunkSize?: number,
  131. /** 使用 uploadFiles 批量上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */
  132. SliceSize?: number,
  133. /** 进行分块复制操作中复制分块上传的并发数,默认值20 */
  134. CopyChunkParallelLimit?: number,
  135. /** 使用 sliceCopyFile 分块复制文件时,每片的大小字节数,默认值10485760(10MB) */
  136. CopyChunkSize?: number,
  137. /** 使用 sliceCopyFile 分块复制文件时,文件大小大于该数值将使用分块复制 ,否则将调用简单复制,默认值10485760(10MB) */
  138. CopySliceSize?: number,
  139. /** 最大分片数,默认 1000,最大 10000,分片上传超大文件时,会根据文件大小和该最大分片数计算合适的的分片大小 */
  140. MaxPartNumber?: number,
  141. /** 上传进度的回调方法 onProgress 的回调频率,单位 ms ,默认值1000 */
  142. ProgressInterval?: number,
  143. /** 上传队列最长大小,超出的任务如果状态不是 waiting、checking、uploading 会被清理,默认10000 */
  144. UploadQueueSize?: number,
  145. /** 调用操作存储桶和对象的 API 时自定义请求域名。可以使用模板,如"{Bucket}.cos.{Region}.myqcloud.com",即在调用 API 时会使用参数中传入的 Bucket 和 Region 进行替换。 */
  146. Domain?: string,
  147. /** getService方法可以使用的自定义域名 */
  148. ServiceDomain?: string,
  149. /** http协议,枚举值'http:','https:'冒号必须 */
  150. Protocol?: string,
  151. /** 开启兼容模式,默认 false 不开启,兼容模式下不校验 Region 是否格式有误,在用于私有化 COS 时使用 */
  152. CompatibilityMode?: boolean,
  153. /** 强制使用后缀式模式发请求。后缀式模式中 Bucket 会放在域名后的 pathname 里,并且 Bucket 会加入签名 pathname 计算,默认 false */
  154. ForcePathStyle?: boolean,
  155. /** 是否原样保留 Key 字段的 / 前缀,默认 false 不保留,这时如果 Key 是 / 开头,强制去掉第一个 / */
  156. UseRawKey?: boolean,
  157. /** 请求超时时间,单位 ms(毫秒),透传给 request 或 ajax 或小程序请求库 */
  158. Timeout?: number,
  159. /** 客户端时间是否不准确,默认 false,在第一次请求 COS API 返回时会判断是否偏差大于 30s,如果是会把该值设置为 true,开发者也可以预先判断并设置该参数 */
  160. CorrectClockSkew?: boolean,
  161. /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数,在第一次请求 COS API 返回时会判断是否偏差大于 30s,如果是会把该值设置为 true,开发者也可以预先判断并设置该参数。 */
  162. SystemClockOffset?: number,
  163. /** 上传文件时校验 Content-MD5,默认 false。如果开启,上传文件时会对文件内容计算 MD5,大文件耗时较长 */
  164. UploadCheckContentMd5?: boolean,
  165. /** 上传文件时计算文件内容 md5 并设置为文件 x-cos-meta-md5 元数据 Header 字段 */
  166. UploadAddMetaMd5?: boolean,
  167. /** 分片上传缓存的 UploadId 列表大小限制,nodejs-sdk 默认 500 个,js-sdk、小程序 SDK 默认 50 */
  168. UploadIdCacheLimit?: number,
  169. /** 是否使用全球加速域名。开启该配置后仅以下接口支持操作:putObject、getObject、headObject、optionsObject、multipartInit、multipartListPart、multipartUpload、multipartAbort、multipartComplete、multipartList、sliceUploadFile、uploadFiles */
  170. UseAccelerate?: boolean,
  171. /** 默认为true,将host加入签名计算,关闭后可能导致越权风险,建议保持为true */
  172. ForceSignHost?: boolean,
  173. /** 获取签名的回调方法,如果没有 SecretId、SecretKey 时,必选 */
  174. getAuthorization?: (
  175. options: GetAuthorizationOptions,
  176. /** callback 获取完签名或临时密钥后,回传给 SDK 的方法 */
  177. callback: (
  178. /** params 回传给 SDK 的签名或获取临时密钥 */
  179. params: GetAuthorizationCallbackParams
  180. ) => void
  181. ) => void,
  182. }
  183. interface Util {
  184. md5: (str: String, encoding?: string) => string,
  185. xml2json: (bodyStr: string) => any,
  186. json2xml: (json: any) => string,
  187. }
  188. interface StaticGetAuthorizationOptions {
  189. /** 计算签名用的密钥 SecretId,必选 */
  190. SecretId: string,
  191. /** 计算签名用的密钥 SecretKey,必选 */
  192. SecretKey: string,
  193. /** 请求的存储桶,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */
  194. Bucket?: Bucket,
  195. /** 请求的地域,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */
  196. Region?: Region,
  197. /** 请求方法,可选 */
  198. Method?: Method,
  199. /** 请求路径,最前面带 /,例如 /images/1.jpg,可选 */
  200. Pathname?: Pathname,
  201. /** 请求的对象键,最前面不带 /,例如 images/1.jpg,可选 */
  202. Key?: Key,
  203. /** 要参与签名计算的 Url Query 参数,可选 */
  204. Query?: Query,
  205. /** 要参与签名计算的 Header 参数,可选 */
  206. Headers?: Headers,
  207. /** 签名几秒后失效,默认为900秒,如果传入了 KeyTime,以 KeyTime 为准,可选 */
  208. Expires?: number,
  209. /** 签名有效时间戳区间,如果传入了该参数,会赋值给在签名里的 q-key-time 和 q-sign-time 字段,格式如:1611915436;1611916336 */
  210. KeyTime?: string,
  211. /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数。 */
  212. SystemClockOffset?: number,
  213. }
  214. /** 计算签名或获取临时密钥可能需要的参数列表 */
  215. interface GetAuthorizationOptions {
  216. /** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
  217. Bucket: Bucket,
  218. /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
  219. Region: Region,
  220. /** 请求方法 */
  221. Method: Method,
  222. /** 请求路径,最前面带 /,例如 /images/1.jpg,Pathname 和 Key 二选一 */
  223. Pathname: Pathname,
  224. /** 请求的对象键,最前面不带 /,例如 images/1.jpg,如果是存储桶接口,传入空字符串,Key 和 Pathname 二选一,推荐使用 Pathname 参数 */
  225. Key: Key,
  226. /** 请求里的 Url Query 参数,可选 */
  227. Query: Query,
  228. /** 请求里的 Header 参数,可选 */
  229. Headers: Headers,
  230. /** 当前需要用凭证的请求,需要的最小权限 */
  231. Scope: Scope,
  232. /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数。 */
  233. SystemClockOffset: number,
  234. }
  235. /** 请求凭证,包含临时密钥信息 */
  236. interface Credentials {
  237. /** 临时密钥 tmpSecretId */
  238. TmpSecretId: string,
  239. /** 临时密钥 tmpSecretKey */
  240. TmpSecretKey: string,
  241. /** 临时密钥 sessonToken */
  242. SecurityToken?: string,
  243. /** 同 SecurityToken,推荐用 SecurityToken */
  244. XCosSecurityToken?: string,
  245. /** 获取临时密钥时,服务端的时间,该时间用于计算签名,可以避免设备时间有偏差导致请求错误 */
  246. StartTime: number,
  247. /** 获取临时密钥的过期时间戳 */
  248. ExpiredTime: number,
  249. /** 该临时密钥是否仅用于相同 Scope 权限范围的请求 */
  250. ScopeLimit?: boolean,
  251. }
  252. /** 用于发请求的签名字符串,会放在请求 Header 里的 Authorization 字段 */
  253. type Authorization = string;
  254. /** SDK 用于请求的凭证,可以是签名,也可以是临时密钥信息 */
  255. type GetAuthorizationCallbackParams = Authorization | Credentials;
  256. /** 一般接口的返回结果 */
  257. interface GeneralResult {
  258. /** 请求返回的 HTTP 状态码 */
  259. statusCode?: number,
  260. /** 请求返回的 header 字段 */
  261. headers?: Headers,
  262. /** 请求的唯一标识 */
  263. RequestId?: string,
  264. }
  265. /** SDK 的错误格式,其中服务端返回错误码可查看 @see https://cloud.tencent.com/document/product/436/7730 */
  266. interface CosSdkError extends GeneralResult {
  267. /** 错误码 */
  268. code: string,
  269. /** 错误信息 */
  270. message: string,
  271. /** 兼容老的错误信息字段,不建议使用,可能是参数错误、客户端出错、或服务端返回的错误 */
  272. error: string | Error | { Code: string, Message: string },
  273. }
  274. /** 回调的错误格式,其中服务端返回错误码可查看 @see https://cloud.tencent.com/document/product/436/7730 */
  275. type CosError = null | CosSdkError;
  276. /** 存储桶操作接口的公共参数 */
  277. interface BucketParams {
  278. /** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
  279. Bucket: Bucket,
  280. /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
  281. Region: Region,
  282. /** 请求时带上的 Header 字段 */
  283. Headers?: Headers,
  284. }
  285. /** 对象操作接口的公共参数 */
  286. interface ObjectParams {
  287. /** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
  288. Bucket: Bucket,
  289. /** 存储桶所在地域,如果有传入只返回该地域的存储桶列表 */
  290. Region: Region,
  291. /** 请求的对象键,最前面不带 / */
  292. Key: Key,
  293. /** 发请求时带上的 Header 字段 */
  294. Headers?: Headers,
  295. }
  296. // 所有接口的入参和出参
  297. // getService
  298. interface GetServiceParams {
  299. /** 存储桶所在地域,如果传入只返回该地域的存储桶 */
  300. Region?: Region,
  301. /** 发请求时带上的 Header 字段 */
  302. Headers?: Headers,
  303. }
  304. /** getService 接口返回值 */
  305. interface GetServiceResult extends GeneralResult {
  306. Buckets: {
  307. /** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
  308. Name: Bucket,
  309. /** 存储桶所在地域 */
  310. Location: Region,
  311. /** 存储桶创建时间 */
  312. CreationDate: IsoDateTime,
  313. }[],
  314. /** 所有者的信息 */
  315. Owner: Owner,
  316. }
  317. // putBucket
  318. /** putBucket 接口参数 */
  319. interface PutBucketParams extends BucketParams {
  320. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  321. ACL?: BucketACL,
  322. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  323. GrantRead?: Grant,
  324. /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  325. GrantWrite?: Grant,
  326. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  327. GrantReadAcp?: Grant,
  328. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  329. GrantWriteAcp?: Grant,
  330. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  331. GrantFullControl?: Grant,
  332. /** 要创建存储桶的AZ类型,创建多AZ存储桶,传入 'MAZ' */
  333. BucketAZConfig?: 'MAZ' | string,
  334. }
  335. /** putBucket 接口返回值 */
  336. interface PutBucketResult extends GeneralResult {
  337. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/ */
  338. Location: Location
  339. }
  340. // headBucket
  341. /** headBucket 接口参数 */
  342. interface HeadBucketParams extends BucketParams {}
  343. /** headBucket 接口返回值 */
  344. interface HeadBucketResult extends GeneralResult {}
  345. // getBucket
  346. /** getBucket 接口参数 */
  347. interface GetBucketParams extends BucketParams {
  348. /** 前缀匹配,用来规定返回的文件前缀地址,可选 */
  349. Prefix?: Prefix,
  350. /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中,可选 */
  351. Delimiter?: Delimiter,
  352. /** 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,可选 */
  353. Marker?: Key,
  354. /** 单次返回最大的条目数量,默认值为1000,最大为1000,注意:该参数会限制每一次 List 操作返回的最大条目数,COS 在每次 List 操作中将返回不超过 max-keys 所设定数值的条目(即 CommonPrefixes 和 Contents 的总和),如果单次响应中未列出所有对象,COS 会返回 NextMarker 节点,其值作为您下次 List 请求的 marker 参数,以便您列出后续对象,可选 */
  355. MaxKeys?: number,
  356. /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */
  357. EncodingType?: EncodingType,
  358. }
  359. /** 对象信息 */
  360. interface CosObject {
  361. /** 对象键 */
  362. Key: Key,
  363. /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */
  364. LastModified: IsoDateTime,
  365. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如“8e0b617ca298a564c3331da28dcb50df”,此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  366. ETag: ETag,
  367. /** 对象大小,单位为 Byte */
  368. Size: string,
  369. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  370. StorageClass: StorageClass,
  371. /** 当对象存储类型为智能分层存储时,指示对象当前所处的存储层,枚举值:FREQUENT(标准层),INFREQUENT(低频层)。仅当 StorageClass 为 INTELLIGENT_TIERING(智能分层)时才会返回该节点 */
  372. StorageTier?: string,
  373. /** 对象持有者信息 */
  374. Owner: Owner,
  375. }
  376. /** getBucket 接口返回值 */
  377. interface GetBucketResult extends GeneralResult {
  378. /** 对象条目 */
  379. Contents: CosObject[]
  380. /** 从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分,定义为 Common Prefix。仅当请求中指定了 delimiter 参数才有可能返回该节点 */
  381. CommonPrefixes: {
  382. /** 前缀匹配,用来规定返回的文件前缀地址 */
  383. Prefix: Prefix,
  384. }[],
  385. /** 响应条目是否被截断,布尔值,例如 true 或 false,可用于判断是否还需要继续列出文件 */
  386. IsTruncated: BooleanString,
  387. /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */
  388. NextMarker?: string,
  389. }
  390. // listObjectVersions
  391. /** listObjectVersions 接口参数 */
  392. interface ListObjectVersionsParams extends BucketParams {
  393. /** 前缀匹配,用来规定返回的文件前缀地址,可选 */
  394. Prefix?: Prefix,
  395. /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中,可选 */
  396. Delimiter?: Delimiter,
  397. /** 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,可选 */
  398. Marker?: string,
  399. /** 单次返回最大的条目数量,默认值为1000,最大为1000,注意:该参数会限制每一次 List 操作返回的最大条目数,COS 在每次 List 操作中将返回不超过 max-keys 所设定数值的条目(即 CommonPrefixes 和 Contents 的总和),如果单次响应中未列出所有对象,COS 会返回 NextMarker 节点,其值作为您下次 List 请求的 marker 参数,以便您列出后续对象,可选 */
  400. MaxKeys?: string,
  401. /** 起始版本 ID 标记,从该标记之后(不含)返回对象版本条目,对应请求中的 url 参数 version-id-marker */
  402. VersionIdMarker?: string,
  403. /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */
  404. EncodingType?: EncodingType,
  405. }
  406. /** 对象删除标记条目 */
  407. interface DeleteMarker {
  408. /** 对象键 */
  409. Key: Key,
  410. /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */
  411. VersionId: VersionId,
  412. /** 当前版本是否为该对象的最新版本 */
  413. IsLatest: string,
  414. /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */
  415. LastModified: IsoDateTime,
  416. Owner: Owner,
  417. }
  418. interface ObjectVersion {
  419. /** 对象键 */
  420. Key: Key,
  421. /** 对象的删除标记的版本 ID */
  422. VersionId: VersionId,
  423. /** 当前版本是否为该对象的最新版本 */
  424. IsLatest: BooleanString,
  425. /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */
  426. LastModified: IsoDateTime,
  427. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  428. ETag: ETag,
  429. /** 对象大小,单位为 Byte */
  430. Size: string,
  431. /** 对象大小,单位为 Byte */
  432. Owner: Owner,
  433. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  434. StorageClass: StorageClass,
  435. /** 当对象存储类型为智能分层存储时,指示对象当前所处的存储层,枚举值:FREQUENT(标准层),INFREQUENT(低频层)。仅当 StorageClass 为 INTELLIGENT_TIERING(智能分层)时才会返回该节点 */
  436. StorageTier?: string,
  437. }
  438. /** listObjectVersions 接口返回值 */
  439. interface ListObjectVersionsResult extends GeneralResult {
  440. /** 从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分,定义为 Common Prefix。仅当请求中指定了 delimiter 参数才有可能返回该节点 */
  441. CommonPrefixes: {
  442. /** 前缀匹配,用来规定返回的文件前缀地址 */
  443. Prefix: Prefix,
  444. }[],
  445. /** 对象版本条目 */
  446. Versions: ObjectVersion[],
  447. /** 对象删除标记条目 */
  448. DeleteMarkers: DeleteMarker[],
  449. /** 响应条目是否被截断,布尔值,例如 true 或 false,可用于判断是否还需要继续列出文件 */
  450. IsTruncated: BooleanString,
  451. /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */
  452. NextMarker?: string,
  453. /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象的版本 ID,当需要继续请求后续条目时,将该节点的值作为下一次请求的 version-id-marker 参数传入。该节点的值可能为空,此时下一次请求的 version-id-marker 参数也需要指定为空。 */
  454. NextVersionIdMarker?: string,
  455. }
  456. // deleteBucket
  457. /** deleteBucket 接口参数 */
  458. interface DeleteBucketParams extends BucketParams {}
  459. /** deleteBucket 接口返回值 */
  460. interface DeleteBucketResult extends GeneralResult {}
  461. // putBucketAcl
  462. /** putBucketAcl 接口参数 */
  463. interface PutBucketAclParams extends BucketParams {
  464. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  465. ACL?: BucketACL,
  466. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  467. GrantRead?: Grant,
  468. /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  469. GrantWrite?: Grant,
  470. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  471. GrantReadAcp?: Grant,
  472. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  473. GrantWriteAcp?: Grant,
  474. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  475. GrantFullControl?: Grant,
  476. /** 放在 XML Body 的授权参数 */
  477. AccessControlPolicy?: {
  478. /** 所有者的信息 */
  479. Owner: Owner,
  480. /** 被授权者信息与权限信息 */
  481. Grants: Grants[]
  482. }
  483. }
  484. /** putBucketAcl 接口返回值 */
  485. interface PutBucketAclResult extends GeneralResult {}
  486. // getBucketAcl
  487. /** getBucketAcl 接口参数 */
  488. interface GetBucketAclParams extends BucketParams {}
  489. /** getBucketAcl 接口返回值 */
  490. interface GetBucketAclResult extends GeneralResult {
  491. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write */
  492. ACL: BucketACL,
  493. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  494. GrantRead: Grant,
  495. /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  496. GrantWrite: Grant,
  497. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  498. GrantReadAcp: Grant,
  499. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  500. GrantWriteAcp: Grant,
  501. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  502. GrantFullControl: Grant,
  503. /** 存储桶持有者信息 */
  504. Owner: Owner,
  505. /** 被授权者信息与权限信息 */
  506. Grants: Grants[],
  507. }
  508. // putBucketCors
  509. type CORSRule = {
  510. /** 允许的访问来源,单条 CORSRule 可以配置多个 AllowedOrigin。
  511. 配置支持 *,表示全部域名都允许,但不推荐。
  512. 支持单个具体域名,例如 http://www.example.com。
  513. 支持 * 通配符,通配符可出现在任何位置,包括协议、域名和端口,可匹配0个或多个字符,但是只能有一个 *。请谨慎使用通配符,因为可能意外匹配到非预期的来源
  514. 注意不要遗漏协议名 http 或 https,若端口不是默认的80(http)或443(https),还需要带上端口,例如 https://example.com:8443。 */
  515. AllowedOrigin: string[],
  516. /** 允许的 HTTP 操作方法(Method),对应 CORS 请求响应中的 Access-Control-Allow-Methods 头部,单条 CORSRule 可以配置多个 AllowedMethod。枚举值:PUT、GET、POST、DELETE、HEAD。 */
  517. AllowedMethod: string[],
  518. /** 在发送预检(OPTIONS)请求时,浏览器会告知服务端接下来的正式请求将使用的自定义 HTTP 请求头部,此配置用于指定允许浏览器发送 CORS 请求时携带的自定义 HTTP 请求头部,不区分英文大小写,单条 CORSRule 可以配置多个 AllowedHeader。
  519. 可以配置*,代表允许所有头部,为了避免遗漏,推荐配置为*。
  520. 如果不配置为*,那么在预检(OPTIONS)请求中 Access-Control-Request-Headers 头部出现的每个 Header,都必须在 AllowedHeader 中有对应项。 */
  521. AllowedHeader?: string[],
  522. /** 允许浏览器获取的 CORS 请求响应中的头部,不区分大小写,单条 CORSRule 可以配置多个 ExposeHeader。
  523. 默认情况下浏览器只能访问简单响应头部:Cache-Control、Content-Type、Expires、Last-Modified,如果需要访问其他响应头部,需要添加 ExposeHeader 配置。
  524. 不支持配置为 *,必须明确配置具体的 Header。
  525. 根据浏览器的实际需求确定,默认推荐填写 ETag,可参考各 API 文档的响应头部分及 公共响应头部 文档。@see https://cloud.tencent.com/document/product/436/7729 */
  526. ExposeHeader?: string[],
  527. /** 跨域资源共享配置的有效时间,单位为秒,在有效时间内,浏览器无须为同一请求再次发起预检(OPTIONS)请求,对应 CORS 请求响应中的 Access-Control-Max-Age 头部,单条 CORSRule 只能配置一个 MaxAgeSeconds。 */
  528. MaxAgeSeconds?: number,
  529. };
  530. /** putBucketCors 接口参数 */
  531. interface PutBucketCorsParams extends BucketParams {
  532. /** 存储桶跨域资源共享(CORS)访问控制规则 */
  533. CORSRules: CORSRule[],
  534. /** 是否允许同一个 url 有多份缓存,如果设置为 true 浏览器在 img 标签加载和 ajax 加载同一个对象 url 将会使用不同缓存 */
  535. ResponseVary?: Boolean | String,
  536. }
  537. /** putBucketCors 接口返回值 */
  538. interface PutBucketCorsResult extends GeneralResult {
  539. /** 存储桶跨域资源共享(CORS)访问控制规则 */
  540. CORSRules: Record<string, any>,
  541. }
  542. // getBucketCors
  543. /** getBucketCors 接口参数 */
  544. interface GetBucketCorsParams extends BucketParams {}
  545. /** getBucketCors 接口返回值 */
  546. interface GetBucketCorsResult extends GeneralResult {
  547. /** 存储桶跨域资源共享(CORS)访问控制规则 */
  548. CORSRules: Record<string, any>,
  549. /** 是否允许同一个 url 有多份缓存,如果设置为 true 浏览器在 img 标签加载和 ajax 加载同一个对象 url 将会使用不同缓存 */
  550. ResponseVary?: Boolean | String,
  551. }
  552. // deleteBucketCors
  553. /** deleteBucketCors 接口参数 */
  554. interface DeleteBucketCorsParams extends BucketParams {}
  555. /** deleteBucketCors 接口返回值 */
  556. interface DeleteBucketCorsResult extends GeneralResult {}
  557. // getBucketLocation
  558. interface GetBucketLocationResult {
  559. /** 存储桶所在地域 */
  560. LocationConstraint: Region,
  561. }
  562. /** getBucketLocation 接口参数 */
  563. interface GetBucketLocationParams extends BucketParams {}
  564. // putBucketPolicy
  565. /** putBucketPolicy 接口参数 */
  566. interface PutBucketPolicyParams extends BucketParams {
  567. /** 存储桶的权限策略 @see https://cloud.tencent.com/document/product/436/31923 */
  568. Policy: Record<string, any>,
  569. }
  570. /** putBucketPolicy 接口返回值 */
  571. interface PutBucketPolicyResult extends GeneralResult {}
  572. // getBucketPolicy
  573. /** getBucketPolicy 接口参数 */
  574. interface GetBucketPolicyParams extends BucketParams {}
  575. /** getBucketPolicy 接口返回值 */
  576. interface GetBucketPolicyResult extends GeneralResult {
  577. /** 存储桶的权限策略 @see https://cloud.tencent.com/document/product/436/31923 */
  578. Policy: Record<string, any>
  579. }
  580. // deleteBucketPolicy
  581. /** deleteBucketPolicy 接口参数 */
  582. interface DeleteBucketPolicyParams extends BucketParams {}
  583. /** deleteBucketPolicy 接口返回值 */
  584. interface DeleteBucketPolicyResult extends GeneralResult {}
  585. // putBucketTagging
  586. /** putBucketTagging 接口参数 */
  587. interface PutBucketTaggingParams extends BucketParams {
  588. /** 标签集合,最多支持10个标签 */
  589. Tags: Tag[],
  590. }
  591. /** putBucketTagging 接口返回值 */
  592. interface PutBucketTaggingResult extends GeneralResult {}
  593. // getBucketTagging
  594. /** getBucketTagging 接口参数 */
  595. interface GetBucketTaggingParams extends BucketParams {}
  596. /** getBucketTagging 接口返回值 */
  597. interface GetBucketTaggingResult extends GeneralResult {
  598. /** 标签集合,最多支持10个标签 */
  599. Tags: Tag[]
  600. }
  601. // deleteBucketTagging
  602. /** deleteBucketTagging 接口参数 */
  603. interface DeleteBucketTaggingParams extends BucketParams {}
  604. /** deleteBucketTagging 接口返回值 */
  605. interface DeleteBucketTaggingResult extends GeneralResult {}
  606. // putBucketLifecycle
  607. /** 生命周期配置规则 */
  608. type LifecycleRule = {
  609. /** 用于唯一地标识规则,长度不能超过255个字符,可选 */
  610. ID: string,
  611. /** 指明规则是否启用,枚举值:Enabled,Disabled,必选 */
  612. Status: 'Enabled' | 'Disabled',
  613. /** Filter 用于描述规则影响的 Object 集合,必选 */
  614. Filter?: Record<string, any>,
  615. /** 规则转换属性,对象何时转换为 Standard_IA 或 Archive 等存储类型 */
  616. Transition?: Record<string, any>,
  617. /** 规则过期属性 */
  618. Expiration?: Record<string, any>,
  619. /** 设置允许分片上传保持运行的最长时间 */
  620. AbortIncompleteMultipartUpload?: Record<string, any>,
  621. /** 指明非当前版本对象何时过期 */
  622. NoncurrentVersionExpiration?: Record<string, any>,
  623. /** 指明非当前版本对象何时转换为 STANDARD_IA 或 ARCHIVE 等存储类型 */
  624. NoncurrentVersionTransition?: Record<string, any>,
  625. };
  626. /** putBucketLifecycle 接口参数 */
  627. interface PutBucketLifecycleParams extends BucketParams {
  628. /** 生命周期配置规则列表 */
  629. Rules: LifecycleRule[],
  630. }
  631. /** putBucketLifecycle 接口返回值 */
  632. interface PutBucketLifecycleResult extends GeneralResult {}
  633. // getBucketLifecycle
  634. /** getBucketLifecycle 接口参数 */
  635. interface GetBucketLifecycleParams extends BucketParams {}
  636. /** getBucketLifecycle 接口返回值 */
  637. interface GetBucketLifecycleResult extends GeneralResult {
  638. /** 生命周期配置规则列表 */
  639. Rules: LifecycleRule[]
  640. }
  641. // deleteBucketLifecycle
  642. /** deleteBucketLifecycle 接口参数 */
  643. interface DeleteBucketLifecycleParams extends BucketParams {}
  644. /** deleteBucketLifecycle 接口返回值 */
  645. interface DeleteBucketLifecycleResult extends GeneralResult {}
  646. // putBucketVersioning
  647. /** 存储桶版本控制开关信息 */
  648. interface VersioningConfiguration {
  649. /** 说明版本是否开启,枚举值:Suspended、Enabled */
  650. Status: 'Enabled' | 'Suspended',
  651. }
  652. /** putBucketVersioning 接口参数 */
  653. interface PutBucketVersioningParams extends BucketParams {
  654. /** 存储桶版本控制开关信息 */
  655. VersioningConfiguration: VersioningConfiguration,
  656. }
  657. /** putBucketVersioning 接口返回值 */
  658. interface PutBucketVersioningResult extends GeneralResult {}
  659. // getBucketVersioning
  660. /** getBucketVersioning 接口参数 */
  661. interface GetBucketVersioningParams extends BucketParams {}
  662. /** getBucketVersioning 接口返回值 */
  663. interface GetBucketVersioningResult extends GeneralResult {
  664. /** 存储桶版本控制开关信息 */
  665. VersioningConfiguration: VersioningConfiguration,
  666. }
  667. // putBucketReplication
  668. interface ReplicationRule {
  669. /** 用来标注具体 Rule 的名称 */
  670. ID?: string,
  671. /** 标识 Rule 是否生效,枚举值:Enabled, Disabled */
  672. Status: 'Enabled' | 'Disabled',
  673. /** 前缀匹配,用来规定返回的文件前缀地址 */
  674. Prefix: Prefix,
  675. /** 目标存储桶信息 */
  676. Destination: {
  677. /** 资源标识符:qcs::cos:<region>::<bucketname-appid> */
  678. Bucket: string,
  679. /** 存储类型,枚举值:STANDARD,INTELLIGENT_TIERING,STANDARD_IA 等。默认值:原存储类型 */
  680. StorageClass?: StorageClass,
  681. }
  682. }
  683. /** 说明所有复制配置信息 */
  684. interface ReplicationConfiguration {
  685. /** 发起者身份标示:qcs::cam::uin/&lt;OwnerUin>:uin/&lt;SubUin> */
  686. Role: string,
  687. /** 具体配置信息,最多支持1000个,所有策略只能指向一个目标存储桶 */
  688. Rules: ReplicationRule[]
  689. }
  690. /** putBucketReplication 接口参数 */
  691. interface PutBucketReplicationParams extends BucketParams {
  692. /** 说明所有复制配置信息 */
  693. ReplicationConfiguration: ReplicationConfiguration,
  694. }
  695. /** putBucketReplication 接口返回值 */
  696. interface PutBucketReplicationResult extends GeneralResult {}
  697. // getBucketReplication
  698. /** getBucketReplication 接口参数 */
  699. interface GetBucketReplicationParams extends BucketParams {}
  700. /** getBucketReplication 接口返回值 */
  701. interface GetBucketReplicationResult extends GeneralResult {
  702. /** 说明所有复制配置信息 */
  703. ReplicationConfiguration: ReplicationConfiguration,
  704. }
  705. // deleteBucketReplication
  706. /** deleteBucketReplication 接口参数 */
  707. interface DeleteBucketReplicationParams extends BucketParams {}
  708. /** deleteBucketReplication 接口返回值 */
  709. interface DeleteBucketReplicationResult extends GeneralResult {}
  710. // putBucketWebsite
  711. /** 存储桶配置静态网站配置信息 */
  712. interface WebsiteConfiguration {
  713. /** 索引文档配置 */
  714. IndexDocument: {
  715. /** 指定索引文档的对象键后缀。例如指定为index.html,那么当访问到存储桶的根目录时,会自动返回 index.html 的内容,或者当访问到article/目录时,会自动返回 article/index.html的内容 */
  716. Suffix: string,
  717. },
  718. /** 重定向所有请求配置 */
  719. RedirectAllRequestsTo?: {
  720. /** 指定重定向所有请求的目标协议,只能设置为 https */
  721. Protocol: "https" | string
  722. },
  723. /** 用于配置是否忽略扩展名 */
  724. AutoAddressing?: {
  725. /** 用于配置是否忽略 HTML 拓展名,可选值为 Enabled 或 Disabled,默认为 Disabled */
  726. Status: 'Disabled' | 'Enabled'
  727. },
  728. /** 错误文档配置 */
  729. ErrorDocument?: {
  730. /** 指定通用错误文档的对象键,当发生错误且未命中重定向规则中的错误码重定向时,将返回该对象键的内容 */
  731. Key: Key,
  732. /** 用于配置命中错误文档的 HTTP 状态码,可选值为 Enabled 或 Disabled,默认为 Enabled */
  733. OriginalHttpStatus?: 'Enabled' | 'Disabled'
  734. },
  735. /** 重定向规则配置,最多设置100条 RoutingRule */
  736. RoutingRules?: {
  737. /** 重定向规则的条件配置 */
  738. Condition: {
  739. /** 指定重定向规则的错误码匹配条件,只支持配置4XX返回码,例如403或404,HttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一 */
  740. HttpErrorCodeReturnedEquals?: string | number,
  741. /** 指定重定向规则的对象键前缀匹配条件,HttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一 */
  742. KeyPrefixEquals?: 'Enabled' | 'Disabled',
  743. },
  744. /** 重定向规则的具体重定向目标配置 */
  745. Redirect: {
  746. /** 指定重定向规则的目标协议,只能设置为 https */
  747. Protocol?: 'https' | string,
  748. /** 指定重定向规则的具体重定向目标的对象键,替换方式为替换整个原始请求的对象键,ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一 */
  749. ReplaceKeyWith?: string,
  750. /** 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,仅可在 Condition 为 KeyPrefixEquals 时设置,ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一 */
  751. ReplaceKeyPrefixWith?: string,
  752. },
  753. }[],
  754. }
  755. /** putBucketWebsite 接口参数 */
  756. interface PutBucketWebsiteParams extends BucketParams {
  757. /** 存储桶配置静态网站配置信息 */
  758. WebsiteConfiguration: WebsiteConfiguration,
  759. }
  760. /** putBucketWebsite 接口返回值 */
  761. interface PutBucketWebsiteResult extends GeneralResult {}
  762. // getBucketWebsite
  763. /** getBucketWebsite 接口参数 */
  764. interface GetBucketWebsiteParams extends BucketParams {}
  765. /** getBucketWebsite 接口返回值 */
  766. interface GetBucketWebsiteResult extends GeneralResult {
  767. /** 存储桶配置静态网站配置信息 */
  768. WebsiteConfiguration: WebsiteConfiguration
  769. }
  770. // deleteBucketWebsite
  771. /** deleteBucketWebsite 接口参数 */
  772. interface DeleteBucketWebsiteParams extends BucketParams {}
  773. /** deleteBucketWebsite 接口返回值 */
  774. interface DeleteBucketWebsiteResult extends GeneralResult {}
  775. // putBucketReferer
  776. /** 防盗链配置信息 */
  777. interface RefererConfiguration {
  778. /** 是否开启防盗链,枚举值:Enabled、Disabled */
  779. Status: 'Enabled' | 'Disabled',
  780. /** 防盗链类型,枚举值:Black-List、White-List */
  781. RefererType: 'Black-List' | 'White-List',
  782. /** 生效域名列表, 支持多个域名且为前缀匹配, 支持带端口的域名和 IP, 支持通配符*,做二级域名或多级域名的通配 */
  783. DomainList: {
  784. /** 生效域名,例如www.qq.com/example,192.168.1.2:8080, *.qq.com */
  785. Domains: string[]
  786. },
  787. /** 是否允许空 Referer 访问,枚举值:Allow、Deny,默认值为 Deny */
  788. EmptyReferConfiguration?: 'Allow' | 'Deny',
  789. }
  790. /** putBucketReferer 接口参数 */
  791. interface PutBucketRefererParams extends BucketParams {
  792. /** 防盗链配置信息 */
  793. RefererConfiguration: RefererConfiguration,
  794. }
  795. /** putBucketReferer 接口返回值 */
  796. interface PutBucketRefererResult extends GeneralResult {}
  797. // getBucketReferer
  798. /** getBucketReferer 接口参数 */
  799. interface GetBucketRefererParams extends BucketParams {}
  800. /** getBucketReferer 接口返回值 */
  801. interface GetBucketRefererResult extends GeneralResult {
  802. /** 防盗链配置信息 */
  803. RefererConfiguration: RefererConfiguration,
  804. }
  805. // putBucketDomain
  806. /** 绑定的域名条目 */
  807. interface DomainRule {
  808. /** 是否启用。枚举值:ENABLED:启用,DISABLED:禁用,必选 */
  809. Status: 'DISABLED' | 'ENABLED',
  810. /** 完整域名,必选 */
  811. Name: string,
  812. /** 源站类型。枚举值:REST:默认源站,WEBSITE:静态源站源站,ACCELERATE:全球加速源站,必选 */
  813. Type: 'REST' | 'WEBSITE' | 'ACCELERATE',
  814. /** 如果指定域名已经作为其他存储桶的自定义域名,那么可以指定该元素强制将该域名作为当前存储桶的自定义域名。当前只支持 CNAME,代表您需要先将该域名的 CNAME 指向当前存储桶的源站域名(根据 Type 元素的不同对应为默认源站、静态网站源站或全球加速源站)后才能通过该接口设置自定义域名。可选 */
  815. ForcedReplacement?: string,
  816. }
  817. /** putBucketDomain 接口参数 */
  818. interface PutBucketDomainParams extends BucketParams {
  819. /** 绑定的域名条目 */
  820. DomainRule: DomainRule[],
  821. }
  822. /** putBucketDomain 接口返回值 */
  823. interface PutBucketDomainResult extends GeneralResult {}
  824. // getBucketDomain
  825. /** getBucketDomain 接口参数 */
  826. interface GetBucketDomainParams extends BucketParams {}
  827. /** getBucketDomain 接口返回值 */
  828. interface GetBucketDomainResult extends GeneralResult {
  829. /** 绑定的域名条目 */
  830. DomainRule: DomainRule[]
  831. }
  832. // deleteBucketDomain
  833. /** deleteBucketDomain 接口参数 */
  834. interface DeleteBucketDomainParams extends BucketParams {}
  835. /** deleteBucketDomain 接口返回值 */
  836. interface DeleteBucketDomainResult extends GeneralResult {}
  837. // putBucketOrigin
  838. /** Origin 回源规则配置 */
  839. interface OriginRule {
  840. /** 通过优先级区分规则执行先后,必选 */
  841. RulePriority: 1
  842. /** 回源类型,支持同步回源(Mirror)和异步回源(Proxy)两种模式。 枚举值:Mirror、Proxy。必选 */
  843. OriginType: 'Mirror' | 'Proxy',
  844. /** 回源配置,配置用户使用的 HTTP 传输协议等信息。必选 */
  845. OriginCondition: {
  846. /** 触发回源的 HTTP 状态码,默认为404。必选 */
  847. HTTPStatusCode: number,
  848. /** 触发回源的文件前缀,默认为空,任意文件均可触发。可选 */
  849. Prefix: Prefix,
  850. },
  851. /** 回源地址相关信息,必选 */
  852. OriginParameter: {
  853. /** 回源使用的协议,枚举值为 HTTP(使用 HTTP 协议),HTTPS(使用 HTTPS 协议)、FOLLOW(跟随用户使用的协议),默认值为 FOLLOW。必选 */
  854. Protocol: 'HTTP' | 'HTTPS' | 'FOLLOW',
  855. /** Proxy 模式下是否需要透传 HTTP 请求串,枚举值:true、false,默认为 true。可选 */
  856. FollowQueryString?: BooleanString,
  857. /** Proxy 模式下是否需要 Http 头部传输配置。可选 */
  858. HttpHeader?: {
  859. /** Proxy 模式下是否传输请求头部,枚举值:true、false,默认为 false。可选 */
  860. FollowHttpHeader?: BooleanString,
  861. /** 设置 Proxy 模式传输的请求头部。可选 */
  862. NewHttpHeader?: {
  863. /** 回源到源站时添加新的自定义头部,默认为空。可选 */
  864. Header?: {
  865. /** 用户设置的头部名称,默认为空。形式如 x-cos、oss、amz-ContentType、CacheControl、ContentDisposition、ContentEncoding、HttpExpiresDate、UserMetaData。可选 */
  866. Key?: string,
  867. /** 用户设置的头部值,默认为空。可选 */
  868. Value?: string
  869. }[]
  870. },
  871. },
  872. /** Proxy 模式下源站 3XX 响应策略,枚举值:true、false,选择 true 时跟随源站 3xx 重定向请求获取到资源,并将资源保存到 COS 上;选择 false 时透传 3XX 响应,不获取资源),默认为 true。可选 */
  873. FollowRedirection: BooleanString,
  874. /** Proxy 模式下的返回码参数,枚举值:301、302,默认为 302。可选 */
  875. HttpRedirectCode: ('301' | '302')[]
  876. },
  877. /** 回源配置,配置用户使用的 HTTP 传输协议等信息。必选 */
  878. OriginInfo: {
  879. /** 源站信息。必选 */
  880. HostInfo: {
  881. /** 源站域名或者源站 IP。必选 */
  882. HostName: string
  883. },
  884. /** 回源文件信息。必选 */
  885. FileInfo: {
  886. /** 回源文件前缀配置信息。可选 */
  887. PrefixConfiguration: {
  888. /** 回源文件的文件前缀,默认为空。可选 */
  889. Prefix: Prefix
  890. },
  891. /** 回源文件后缀配置信息。可选 */
  892. SuffixConfiguration: {
  893. /** 回源文件的文件后缀,默认为空。可选 */
  894. Suffix: string
  895. }
  896. }
  897. },
  898. }
  899. /** putBucketOrigin 接口参数 */
  900. interface PutBucketOriginParams extends BucketParams {
  901. /** Origin 回源规则配置 */
  902. OriginRule: OriginRule[],
  903. }
  904. /** putBucketOrigin 接口返回值 */
  905. interface PutBucketOriginResult extends GeneralResult {}
  906. // getBucketOrigin
  907. /** getBucketOrigin 接口参数 */
  908. interface GetBucketOriginParams extends BucketParams {}
  909. /** getBucketOrigin 接口返回值 */
  910. interface GetBucketOriginResult extends GeneralResult {
  911. /** Origin 回源规则配置 */
  912. OriginRule: OriginRule[],
  913. }
  914. // deleteBucketOrigin
  915. /** deleteBucketOrigin 接口参数 */
  916. interface DeleteBucketOriginParams extends BucketParams {}
  917. /** deleteBucketOrigin 接口返回值 */
  918. interface DeleteBucketOriginResult extends GeneralResult {}
  919. // putBucketLogging
  920. interface BucketLoggingStatus {
  921. /** 存储桶 logging 设置的具体信息,主要是目标存储桶 */
  922. LoggingEnabled?: {
  923. /** 存放日志的目标存储桶,可以是同一个存储桶(但不推荐),或同一账户下、同一地域的存储桶 */
  924. TargetBucket: Bucket,
  925. /** 日志存放在目标存储桶的指定路径 */
  926. TargetPrefix: Prefix,
  927. }
  928. }
  929. /** putBucketLogging 接口参数 */
  930. interface PutBucketLoggingParams extends BucketParams {
  931. /** 说明日志记录配置的状态,如果无子节点信息则意为关闭日志记录 */
  932. BucketLoggingStatus: BucketLoggingStatus,
  933. }
  934. /** putBucketLogging 接口返回值 */
  935. interface PutBucketLoggingResult extends GeneralResult {}
  936. // getBucketLogging
  937. /** getBucketLogging 接口参数 */
  938. interface GetBucketLoggingParams extends BucketParams {}
  939. /** getBucketLogging 接口返回值 */
  940. interface GetBucketLoggingResult extends GeneralResult {
  941. /** 说明日志记录配置的状态,如果无子节点信息则意为关闭日志记录 */
  942. BucketLoggingStatus: BucketLoggingStatus,
  943. }
  944. // putBucketInventory
  945. /** putBucketInventory 接口参数 */
  946. interface InventoryConfiguration {
  947. /** 清单的名称,与请求参数中的 id 对应,可选 */
  948. Id: string,
  949. /** 清单是否启用的标识:如果设置为 true,清单功能将生效,如果设置为 false,将不生成任何清单,必选 */
  950. IsEnabled: BooleanString,
  951. /** 是否在清单中包含对象版本:如果设置为 All,清单中将会包含所有对象版本,并在清单中增加 VersionId,IsLatest,DeleteMarker 这几个字段,如果设置为 Current,则清单中不包含对象版本信息,必选 */
  952. IncludedObjectVersions: 'All' | 'Current',
  953. /** 筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象,可选 */
  954. Filter?: {
  955. /** 筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象,可选 */
  956. Prefix?: Prefix
  957. },
  958. /** 设置清单结果中应包含的分析项目,可选 */
  959. OptionalFields?: string[],
  960. /** 配置清单任务周期,必选 */
  961. Schedule: {
  962. /** 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly,必选 */
  963. Frequency: 'Daily' | 'Weekly'
  964. },
  965. /** 描述存放清单结果的信息,必选 */
  966. Destination: {
  967. /** 清单结果导出后存放的存储桶信息,必选 */
  968. COSBucketDestination: {
  969. /** 清单分析结果的存储桶名,如:qcs::cos:ap-guangzhou::bucket-logging-1250000000,必选 */
  970. Bucket: string,
  971. /** 清单分析结果的文件形式,可选项为 CSV 格式,必选 */
  972. Format: 'CSV',
  973. /** 存储桶的所有者 ID,例如100000000001,可选 */
  974. AccountId?: string,
  975. /** 清单分析结果的前缀,可选 */
  976. Prefix?: Prefix,
  977. /** 为清单结果提供服务端加密的选项,可选 */
  978. Encryption?: {
  979. /** COS 托管密钥的加密方式,无需填充,可选 */
  980. SSECOS?: ''
  981. }
  982. }
  983. }
  984. }
  985. interface PutBucketInventoryParams extends BucketParams {
  986. /** 清单的名称,与请求参数中的 id 对应 */
  987. Id: string,
  988. /** 包含清单任务的详细信息 */
  989. InventoryConfiguration: InventoryConfiguration,
  990. }
  991. /** putBucketInventory 接口返回值 */
  992. interface PutBucketInventoryResult extends GeneralResult {}
  993. // getBucketInventory
  994. /** getBucketInventory 接口参数 */
  995. interface GetBucketInventoryParams extends BucketParams {
  996. /** 清单的名称,与请求参数中的 id 对应 */
  997. Id: string,
  998. }
  999. /** getBucketInventory 接口返回值 */
  1000. interface GetBucketInventoryResult extends GeneralResult {
  1001. /** 包含清单任务的详细信息 */
  1002. InventoryConfiguration: InventoryConfiguration
  1003. }
  1004. // listBucketInventory
  1005. /** listBucketInventory 接口参数 */
  1006. interface ListBucketInventoryParams extends BucketParams {}
  1007. /** listBucketInventory 接口返回值 */
  1008. interface ListBucketInventoryResult extends GeneralResult {
  1009. /** 包含清单任务的详细信息 */
  1010. InventoryConfigurations: Record<string, any>,
  1011. /** 当 COS 响应体中 IsTruncated 为 true,且 NextContinuationToken 节点中存在参数值时,您可以将这个参数作为 continuation-token 参数值,以获取下一页的清单任务信息。缺省值:None */
  1012. ContinuationToken: string,
  1013. /** 是否已列出所有清单任务信息的标识。如果已经展示完则为 false,否则为 true */
  1014. IsTruncated: BooleanString,
  1015. /** 下一页清单列表的标识。如果该参数中有值,则可将该值作为 continuation-token 参数并发起 GET 请求以获取下一页清单任务信息 */
  1016. NextContinuationToken?: string,
  1017. }
  1018. // deleteBucketInventory
  1019. /** deleteBucketInventory 接口参数 */
  1020. interface DeleteBucketInventoryParams extends BucketParams {
  1021. Id: string,
  1022. }
  1023. /** deleteBucketInventory 接口返回值 */
  1024. interface DeleteBucketInventoryResult extends GeneralResult {}
  1025. // putBucketAccelerate
  1026. /** 全球加速的具体信息 */
  1027. interface AccelerateConfiguration {
  1028. /** 说明全球加速功能是否开启,枚举值:Suspended、Enabled */
  1029. Status: 'Enabled' | 'Suspended',
  1030. }
  1031. /** putBucketAccelerate 接口参数 */
  1032. interface PutBucketAccelerateParams extends BucketParams {
  1033. /** 全球加速的具体信息 */
  1034. AccelerateConfiguration: AccelerateConfiguration,
  1035. }
  1036. /** putBucketAccelerate 接口返回值 */
  1037. interface PutBucketAccelerateResult extends GeneralResult {}
  1038. // getBucketAccelerate
  1039. /** getBucketAccelerate 接口参数 */
  1040. interface GetBucketAccelerateParams extends BucketParams {}
  1041. /** getBucketAccelerate 接口返回值 */
  1042. interface GetBucketAccelerateResult extends GeneralResult {
  1043. /** 全球加速的具体信息 */
  1044. InventoryConfiguration: AccelerateConfiguration,
  1045. }
  1046. // putBucketEncryption
  1047. /** 默认的服务端加密配置规则 */
  1048. interface EncryptionRule {
  1049. /** 服务端加密的默认配置信息 */
  1050. ApplySideEncryptionConfiguration: {
  1051. /** 要使用的服务端加密算法,枚举值:AES256 */
  1052. SSEAlgorithm: 'AES256'
  1053. },
  1054. }
  1055. /** 包含默认加密的配置参数 */
  1056. interface ServerSideEncryptionConfiguration {
  1057. /** 默认的服务端加密配置规则 */
  1058. Rule: EncryptionRule[],
  1059. }
  1060. /** putBucketEncryption 接口参数 */
  1061. interface PutBucketEncryptionParams extends BucketParams {
  1062. /** 包含默认加密的配置参数 */
  1063. ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration,
  1064. }
  1065. /** putBucketEncryption 接口返回值 */
  1066. interface PutBucketEncryptionResult extends GeneralResult {}
  1067. // getBucketAccelerate
  1068. /** getBucketEncryption 接口参数 */
  1069. interface GetBucketEncryptionParams extends BucketParams {}
  1070. /** getBucketEncryption 接口返回值 */
  1071. interface GetBucketEncryptionResult extends GeneralResult {
  1072. /** 默认加密的配置参数 */
  1073. ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration,
  1074. }
  1075. // deleteBucketEncryption
  1076. /** deleteBucketEncryption 接口参数 */
  1077. interface DeleteBucketEncryptionParams extends BucketParams {}
  1078. /** deleteBucketEncryption 接口返回值 */
  1079. interface DeleteBucketEncryptionResult extends GeneralResult {}
  1080. // headObject
  1081. /** headObject 接口参数 */
  1082. interface HeadObjectParams extends ObjectParams {}
  1083. /** headObject 接口返回值 */
  1084. interface HeadObjectResult extends GeneralResult {
  1085. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1086. ETag: ETag,
  1087. /** 对象的版本 ID */
  1088. VersionId?: string,
  1089. }
  1090. // getObject
  1091. /** getObject 接口参数 */
  1092. interface GetObjectParams extends ObjectParams {
  1093. DataType?: 'text' | 'blob' | 'arraybuffer',
  1094. /** 请求里的 Url Query 参数,传入该值中的 key/value 将会被 URLEncode */
  1095. Query?: Query,
  1096. /** 请求里的 Url Query 参数。传入该值将直接拼接在 Url 上,不会对其进行 URLEncode */
  1097. QueryString?: string,
  1098. /** 当对象在指定时间后被修改,则返回对象,否则返回 HTTP 状态码为304(Not Modified) */
  1099. IfModifiedSince?: string,
  1100. /** 当对象在指定时间后未被修改,则返回对象,否则返回 HTTP 状态码为412(Precondition Failed) */
  1101. IfUnmodifiedSince?: string,
  1102. /** 当对象的 ETag 与指定的值一致,则返回对象,否则返回 HTTP 状态码为412(Precondition Failed) */
  1103. IfMatch?: string,
  1104. /** 当对象的 ETag 与指定的值不一致,则返回对象,否则返回 HTTP 状态码为304(Not Modified) */
  1105. IfNoneMatch?: string,
  1106. /** 针对本次下载进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 */
  1107. TrafficLimit?: number,
  1108. /** 设置响应中的 Cache-Control 头部的值 */
  1109. ResponseCacheControl?: string,
  1110. /** 设置响应中的 Content-Disposition 头部的值 */
  1111. ResponseContentDisposition?: string,
  1112. /** 设置响应中的 Content-Encoding 头部的值 */
  1113. ResponseContentEncoding?: string,
  1114. /** 设置响应中的 Content-Language 头部的值 */
  1115. ResponseContentLanguage?: string,
  1116. /** 设置响应中的 Content-Type 头部的值 */
  1117. ResponseExpires?: string,
  1118. /** 设置响应中的 Expires 头部的值 */
  1119. ResponseContentType?: string,
  1120. /** RFC 2616 中定义的字节范围,范围值必须使用 bytes=first-last 格式,first 和 last 都是基于0开始的偏移量。例如 bytes=0-9 表示下载对象的开头10个字节的数据 ,如果不指定,则表示下载整个对象 */
  1121. Range?: string,
  1122. /** 当启用版本控制时,指定要下载的版本 ID,如不指定则下载对象的最新版本 */
  1123. VersionId?: string,
  1124. /** 下载的进度回调方法 */
  1125. onProgress?: onProgress,
  1126. }
  1127. /** getObject 接口返回值 */
  1128. interface GetObjectResult extends GeneralResult {
  1129. /** 对象内容 */
  1130. Body: string,
  1131. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1132. ETag: ETag,
  1133. /** 对象的版本 ID */
  1134. VersionId?: string,
  1135. }
  1136. // putObject
  1137. /** putObject 接口参数 */
  1138. interface PutObjectParams extends ObjectParams {
  1139. /** 要上传对象内容 */
  1140. Body: UploadBody,
  1141. /** 上传的文件大小,单位 Byte 字节,如果不传且 Body 是流,会走服务端流式上传 */
  1142. ContentLength?: number,
  1143. /** 请求里的 Url Query 参数 */
  1144. Query?: string,
  1145. /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */
  1146. CacheControl?: string,
  1147. /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */
  1148. ContentDisposition?: string,
  1149. /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */
  1150. ContentEncoding?: string,
  1151. /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或image/jpeg */
  1152. ContentType?: string,
  1153. /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */
  1154. Expires?: string,
  1155. /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */
  1156. Expect?: string,
  1157. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  1158. ACL?: ObjectACL,
  1159. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1160. GrantRead?: Grant,
  1161. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1162. GrantReadAcp?: Grant,
  1163. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1164. GrantWriteAcp?: Grant,
  1165. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1166. GrantFullControl?: Grant,
  1167. /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */
  1168. StorageClass?: StorageClass,
  1169. /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB,注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */
  1170. 'x-cos-meta-*'?: string,
  1171. /** 任务开始上传的回调方法 */
  1172. onTaskReady?: (TaskId: COS.TaskId) => void,
  1173. onTaskStart?: (TaskInfo: COS.Task) => void,
  1174. /** 上传的进度回调方法 */
  1175. onProgress?: onProgress,
  1176. }
  1177. /** putObject 接口返回值 */
  1178. interface PutObjectResult extends GeneralResult {
  1179. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1180. ETag: ETag,
  1181. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  1182. Location: string,
  1183. /** 对象的版本 ID */
  1184. VersionId?: VersionId,
  1185. }
  1186. /** appendObject 接口参数 */
  1187. interface AppendObjectParams extends PutObjectParams {
  1188. /** 追加操作的起始点 */
  1189. Position: number;
  1190. }
  1191. // deleteObject
  1192. /** deleteObject 接口参数 */
  1193. interface DeleteObjectParams extends ObjectParams {}
  1194. /** deleteObject 接口返回值 */
  1195. interface DeleteObjectResult extends GeneralResult {}
  1196. // deleteMultipleObject
  1197. /** deleteMultipleObject 接口参数 */
  1198. interface DeleteMultipleObjectParams extends BucketParams {
  1199. /** 要删除的对象列表 */
  1200. Objects: {
  1201. /** 要删除的对象键 */
  1202. Key: Key,
  1203. /** 要删除的对象版本 ID */
  1204. VersionId?: string
  1205. }[]
  1206. }
  1207. /** deleteMultipleObject 接口返回值 */
  1208. interface DeleteMultipleObjectResult extends GeneralResult {
  1209. Deleted: {
  1210. /** 删除成功的对象的对象键 */
  1211. Key: Key,
  1212. /** 删除成功的版本 ID,仅当请求中指定了要删除对象的版本 ID 时才返回该元素 */
  1213. VersionId?: VersionId,
  1214. /** 仅当对该对象的删除创建了一个删除标记,或删除的是该对象的一个删除标记时才返回该元素,布尔值,固定为 true */
  1215. DeleteMarker?: BooleanString,
  1216. /** 仅当对该对象的删除创建了一个删除标记,或删除的是该对象的一个删除标记时才返回该元素,值为创建或删除的删除标记的版本 ID */
  1217. DeleteMarkerVersionId?: VersionId,
  1218. }[],
  1219. Error: {
  1220. /** 删除失败的对象的对象键 */
  1221. Key: Key,
  1222. /** 删除失败的版本 ID,仅当请求中指定了要删除对象的版本 ID 时才返回该元素 */
  1223. VersionId?: string,
  1224. /** 删除失败的错误码,用来定位唯一的错误条件和确定错误场景 */
  1225. Code?: string,
  1226. /** 删除失败的具体错误信息 */
  1227. Message?: string,
  1228. }[],
  1229. }
  1230. // getObjectAcl
  1231. /** getObjectAcl 接口参数 */
  1232. interface GetObjectAclParams extends ObjectParams {}
  1233. /** getObjectAcl 接口返回值 */
  1234. interface GetObjectAclResult extends GeneralResult {
  1235. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write */
  1236. ACL: ObjectACL,
  1237. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  1238. GrantRead: Grant,
  1239. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  1240. GrantReadAcp: Grant,
  1241. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  1242. GrantWriteAcp: Grant,
  1243. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */
  1244. GrantFullControl: Grant,
  1245. /** 存储桶持有者信息 */
  1246. Owner: Owner,
  1247. /** 被授权者信息与权限信息 */
  1248. Grants: Grants[],
  1249. }
  1250. // putObjectAcl
  1251. /** putObjectAcl 接口参数 */
  1252. interface PutObjectAclParams extends ObjectParams {
  1253. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  1254. ACL?: ObjectACL,
  1255. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1256. GrantRead?: Grant,
  1257. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1258. GrantReadAcp?: Grant,
  1259. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1260. GrantWriteAcp?: Grant,
  1261. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1262. GrantFullControl?: Grant,
  1263. }
  1264. /** putObjectAcl 接口返回值 */
  1265. interface PutObjectAclResult extends GeneralResult {}
  1266. // optionsObject
  1267. /** optionsObject 接口参数 */
  1268. interface OptionsObjectParams extends ObjectParams {
  1269. /** 发起 CORS 请求所在的页面域名(Origin) */
  1270. Origin: string,
  1271. /** 发起 CORS 请求所用的方法(Method) */
  1272. AccessControlRequestMethod: Method,
  1273. /** 发起 CORS 请求时使用的 HTTP 请求头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */
  1274. AccessControlRequestHeaders: string,
  1275. }
  1276. /** optionsObject 接口返回值 */
  1277. interface OptionsObjectResult extends GeneralResult {
  1278. /** 允许发起 CORS 的域名,可能的值有以下两种:
  1279. *:代表允许所有域名
  1280. 请求头 Origin 中指定的域名:代表允许指定域名 */
  1281. AccessControlAllowOrigin: string,
  1282. /** 允许发起 CORS 请求所使用的方法(Method),可使用英文逗号(,)分隔多个方法 */
  1283. AccessControlAllowMethods: string,
  1284. /** 允许发起 CORS 请求带的 HTTP 头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */
  1285. AccessControlAllowHeaders: string,
  1286. /** 允许浏览器获取的 CORS 请求中的 HTTP 响应头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */
  1287. AccessControlExposeHeaders: string,
  1288. /** CORS 配置的有效时间,单位为秒,在有效时间内,浏览器无须为同一请求再次发起预检请求 */
  1289. AccessControlMaxAge: string
  1290. }
  1291. // restoreObject
  1292. interface RestoreRequest {
  1293. /** 指定恢复出的临时副本的有效时长,单位为“天” */
  1294. Days: number | string,
  1295. /** 恢复工作参数 */
  1296. CASJobParameters: {
  1297. /** 恢复时,Tier 可以指定为支持的恢复模式。
  1298. 对于恢复归档存储类型数据,有三种恢复模式,分别为:
  1299. Expedited:极速模式,恢复任务在1 - 5分钟内可完成。
  1300. Standard:标准模式,恢复任务在3 - 5小时内完成
  1301. Bulk:批量模式,恢复任务在5 - 12小时内完成。
  1302. 对于恢复深度归档存储类型数据,有两种恢复模式,分别为:
  1303. Standard:标准模式,恢复时间为12 - 24小时。
  1304. Bulk:批量模式,恢复时间为24 - 48小时。 */
  1305. Tier: 'Expedited' | 'Standard' | 'Bulk'
  1306. }
  1307. }
  1308. /** restoreObject 接口参数 */
  1309. interface RestoreObjectParams extends ObjectParams {
  1310. /** 包含 POST Object restore 操作的所有请求信息 */
  1311. RestoreRequest: RestoreRequest,
  1312. /** 当启用版本控制时,指定要恢复的版本 ID,如不指定则恢复对象的最新版本 */
  1313. VersionId?: VersionId,
  1314. }
  1315. /** restoreObject 接口返回值 */
  1316. interface RestoreObjectResult extends GeneralResult {}
  1317. // selectObjectContent
  1318. /** selectObjectContent 接口参数 */
  1319. interface SelectObjectContentParams extends ObjectParams {
  1320. /** 接口的版本信息,当前最新版本是 2 */
  1321. SelectType: number,
  1322. /** 检索参数,当前版本支持检索 JSON、CSV 文件内容 */
  1323. SelectRequest: Record<string, any>,
  1324. /** 当启用版本控制时,指定要检索的版本 ID,如不指定则检索对象的最新版本 */
  1325. VersionId?: VersionId,
  1326. }
  1327. /** selectObjectContent 接口返回值 */
  1328. interface SelectObjectContentResult extends GeneralResult {
  1329. /** 查询过程统计信息 */
  1330. Stats: {
  1331. /** 如果文件是压缩文件,该数值代表文件解压前的字节大小;如果文件不是压缩文件,该数值即文件的字节大小 */
  1332. BytesScanned: number,
  1333. /** 如果文件是压缩文件,该数值代表文件解压后的字节大小;如果文件不是压缩文件,该数值即文件的字节大小 */
  1334. BytesProcessed: number,
  1335. /** COS Select 在本次查询中返回的检索结果字节大小 */
  1336. BytesReturned: number,
  1337. },
  1338. /** 查询的结果内容 */
  1339. Payload?: string,
  1340. }
  1341. // putObjectCopy
  1342. /** putObjectCopy 接口参数 */
  1343. interface PutObjectCopyParams extends ObjectParams {
  1344. /** 源对象的 URL,其中对象键需经过 URLEncode,可以通过 versionId 参数指定源对象的版本,例如: sourcebucket-1250000001.cos.ap-shanghai.myqcloud.com/example-%E8%85%BE%E8%AE%AF%E4%BA%91.jpg 或 sourcebucket-1250000001.cos.ap-shanghai.myqcloud.com/example-%E8%85%BE%E8%AE%AF%E4%BA%91.jpg?versionId=MTg0NDUxNzYzMDc0NDMzNDExOTc */
  1345. CopySource: string,
  1346. /** 是否复制源对象的元数据信息,枚举值:Copy,Replaced,默认为 Copy。如果标记为 Copy,则复制源对象的元数据信息;如果标记为 Replaced,则按本次请求的请求头中的元数据信息作为目标对象的元数据信息;当目标对象和源对象为同一对象时,即用户试图修改元数据时,则标记必须为 Replaced */
  1347. MetadataDirective?: 'Copy' | 'Replaced',
  1348. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  1349. ACL?: ObjectACL,
  1350. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1351. GrantRead?: Grant,
  1352. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1353. GrantReadAcp?: Grant,
  1354. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1355. GrantWriteAcp?: Grant,
  1356. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1357. GrantFullControl?: Grant,
  1358. /** 当对象在指定时间后被修改,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */
  1359. CopySourceIfModifiedSince?: string,
  1360. /** 当对象在指定时间后未被修改,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */
  1361. CopySourceIfUnmodifiedSince?: string,
  1362. /** 当对象的 ETag 与指定的值一致,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */
  1363. CopySourceIfMatch?: string,
  1364. /** 当对象的 ETag 与指定的值不一致,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */
  1365. CopySourceIfNoneMatch?: string,
  1366. /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */
  1367. StorageClass?: StorageClass,
  1368. /** RFC 2616 中定义的缓存指令,将作为目标对象元数据保存 */
  1369. CacheControl?: string,
  1370. /** RFC 2616 中定义的文件名称,将作为目标对象元数据保存 */
  1371. ContentDisposition?: string,
  1372. /** RFC 2616 中定义的编码格式,将作为目标对象元数据保存 */
  1373. ContentEncoding?: string,
  1374. /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述目标对象的内容类型,将作为目标对象元数据保存。例如 text/html 或 image/jpeg。 */
  1375. ContentType?: string,
  1376. /** RFC 2616 中定义的缓存失效时间,将作为目标对象元数据保存 */
  1377. Expires?: string,
  1378. /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为目标对象元数据保存,大小限制为2KB。注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */
  1379. 'x-cos-meta-*'?: string
  1380. }
  1381. /** putObjectCopy 接口返回值 */
  1382. interface PutObjectCopyResult extends GeneralResult {}
  1383. // putObjectTagging
  1384. /** putObjectTagging 接口参数 */
  1385. interface PutObjectTaggingParams extends ObjectParams {
  1386. /** 标签集合,最多支持10个标签 */
  1387. Tags: Tag[],
  1388. /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */
  1389. VersionId?: VersionId,
  1390. }
  1391. /** putObjectTagging 接口返回值 */
  1392. interface PutObjectTaggingResult extends GeneralResult {}
  1393. // getObjectTagging
  1394. /** getObjectTagging 接口参数 */
  1395. interface GetObjectTaggingParams extends ObjectParams {}
  1396. /** getObjectTagging 接口返回值 */
  1397. interface GetObjectTaggingResult extends GeneralResult {
  1398. /** 标签集合,最多支持10个标签 */
  1399. Tags: Tag[],
  1400. }
  1401. // deleteObjectTagging
  1402. /** deleteObjectTagging 接口参数 */
  1403. interface DeleteObjectTaggingParams extends ObjectParams {}
  1404. /** deleteObjectTagging 接口返回值 */
  1405. interface DeleteObjectTaggingResult extends GeneralResult {}
  1406. // multipartInit
  1407. /** multipartInit 接口参数 */
  1408. interface MultipartInitParams extends ObjectParams {
  1409. /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */
  1410. CacheControl?: string,
  1411. /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */
  1412. ContentDisposition?: string,
  1413. /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */
  1414. ContentEncoding?: string,
  1415. /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或 image/jpeg */
  1416. ContentType?: string,
  1417. /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */
  1418. Expires?: string,
  1419. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  1420. ACL?: ObjectACL,
  1421. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1422. GrantRead?: Grant,
  1423. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1424. GrantReadAcp?: Grant,
  1425. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1426. GrantWriteAcp?: Grant,
  1427. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1428. GrantFullControl?: Grant,
  1429. /** 请求里的 Url Query 参数 */
  1430. Query?: Query,
  1431. /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */
  1432. StorageClass?: StorageClass,
  1433. /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB。注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */
  1434. 'x-cos-meta-*'?: string,
  1435. }
  1436. /** multipartInit 接口返回值 */
  1437. interface MultipartInitResult extends GeneralResult {
  1438. UploadId: string,
  1439. }
  1440. // multipartUpload
  1441. /** multipartUpload 接口参数 */
  1442. interface MultipartUploadParams extends ObjectParams {
  1443. /** 分块上传的任务 ID */
  1444. UploadId: UploadId,
  1445. /** 标识本次分块上传的编号,范围在1 - 10000 */
  1446. PartNumber: PartNumber,
  1447. /** 要上传分片内容 */
  1448. Body: UploadBody,
  1449. /** 要上传分片内容大小 */
  1450. ContentLength?: number,
  1451. /** 服务端加密算法 */
  1452. ServerSideEncryption?: string,
  1453. }
  1454. /** multipartUpload 接口返回值 */
  1455. interface MultipartUploadResult extends GeneralResult {
  1456. /** 返回对象的 MD5 算法校验值,ETag 的值可以用于检查分块的内容是否发生变化 */
  1457. ETag: ETag
  1458. }
  1459. // uploadPartCopy
  1460. /** uploadPartCopy 接口参数 */
  1461. interface UploadPartCopyParams extends ObjectParams {
  1462. /** 源对象 URL 路径,可以通过 versionid 子资源指定历史版本 */
  1463. CopySource: string,
  1464. /** 分块上传的任务 ID */
  1465. UploadId: UploadId,
  1466. /** 标识本次分块上传的编号,范围在1 - 10000 */
  1467. PartNumber: PartNumber,
  1468. /** 源对象的字节范围,范围值必须使用 bytes=first-last 格式,first 和 last 都是基于 0 开始的偏移量。例如 bytes=0-9 表示您希望拷贝源对象的开头10个字节的数据,如果不指定,则表示拷贝整个对象 */
  1469. CopySourceRange?: string,
  1470. /** 当 Object 在指定时间后被修改,则执行操作,否则返回412,可与 x-cos-copy-source-If-None-Match 一起使用,与其他条件联合使用返回冲突 */
  1471. CopySourceIfModifiedSince?: string,
  1472. /** 当 Object 在指定时间后未被修改,则执行操作,否则返回412,可与 x-cos-copy-source-If-Match 一起使用,与其他条件联合使用返回冲突 */
  1473. CopySourceIfUnmodifiedSince?: string,
  1474. /** 当 Object 的 Etag 和给定一致时,则执行操作,否则返回412,可与 x-cos-copy-source-If-Unmodified-Since 一起使用,与其他条件联合使用返回冲突 */
  1475. CopySourceIfMatch?: string,
  1476. /** 当 Object 的 Etag 和给定不一致时,则执行操作,否则返回412,可与 x-cos-copy-source-If-Modified-Since 一起使用,与其他条件联合使用返回冲突 */
  1477. CopySourceIfNoneMatch?: string,
  1478. }
  1479. /** uploadPartCopy 接口返回值 */
  1480. interface UploadPartCopyResult extends GeneralResult {
  1481. /** 返回对象的 MD5 算法校验值,ETag 的值可以用于检查分块的内容是否发生变化 */
  1482. ETag: ETag
  1483. }
  1484. // multipartComplete
  1485. /** multipartComplete 接口参数 */
  1486. interface MultipartCompleteParams extends ObjectParams {
  1487. /** 分块上传的任务 ID */
  1488. UploadId: UploadId,
  1489. /** 用来说明本次分块上传中每个块的信息 */
  1490. Parts: Part[],
  1491. }
  1492. /** multipartComplete 接口返回值 */
  1493. interface MultipartCompleteResult extends GeneralResult {
  1494. /** 使用 Upload Part 请求上传分块成功后返回的 ETag 响应头部的值 */
  1495. ETag: ETag,
  1496. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  1497. Location: Location,
  1498. /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */
  1499. VersionId?: VersionId,
  1500. }
  1501. // multipartList
  1502. /** multipartList 接口参数 */
  1503. interface MultipartListParams extends BucketParams {
  1504. /** 限定返回的 Object key 必须以 Prefix 作为前缀。注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix。 */
  1505. Prefix: Prefix,
  1506. /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中 */
  1507. Delimiter: Delimiter
  1508. /** 设置最大返回的 multipart 数量,合法取值从1到1000,默认1000 */
  1509. MaxUploads?: number,
  1510. /** 与 upload-id-marker 一起使用:当 upload-id-marker 未被指定时,ObjectName 字母顺序大于 key-marker 的条目将被列出。当 upload-id-marker 被指定时,ObjectName 字母顺序大于 key-marker 的条目被列出,ObjectName 字母顺序等于 key-marker 同时 UploadId 大于 upload-id-marker 的条目将被列出。 */
  1511. KeyMarker?: Key,
  1512. /** 与 key-marker 一起使用:当 key-marker 未被指定时,upload-id-marker 将被忽略。当 key-marker 被指定时,ObjectName字母顺序大于 key-marker 的条目被列出,ObjectName 字母顺序等于 key-marker 同时 UploadId 大于 upload-id-marker 的条目将被列出。 */
  1513. UploadIdMarker?: UploadId,
  1514. /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */
  1515. EncodingType?: EncodingType,
  1516. }
  1517. /** multipartList 接口返回值 */
  1518. interface MultipartListResult extends GeneralResult {
  1519. /** 每个上传任务的信息 */
  1520. Upload: {
  1521. /** 对象键 */
  1522. Key: Key,
  1523. /** 分块上传的任务 ID */
  1524. UploadId: UploadId,
  1525. /** 上传任务发起者的信息 */
  1526. Initiator: Initiator,
  1527. /** 上传任务所有者的信息 */
  1528. Owner: Owner,
  1529. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  1530. StorageClass: StorageClass,
  1531. /** UploadId 的创建时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */
  1532. Initiated: IsoDateTime
  1533. }[],
  1534. /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */
  1535. IsTruncated: BooleanString,
  1536. /** 假如返回条目被截断,则返回的 NextKeyMarker 就是下一个条目的起点。 */
  1537. NextKeyMarker: Key,
  1538. /** 假如返回条目被截断,则返回的 UploadId 就是下一个条目的起点。 */
  1539. NextUploadIdMarker: UploadId,
  1540. }
  1541. // multipartListPart
  1542. /** multipartListPart 接口参数 */
  1543. interface MultipartListPartParams extends ObjectParams {
  1544. /** 请求的对象键,最前面不带 /,例如 images/1.jpg */
  1545. Key: Key,
  1546. /** 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId */
  1547. UploadId: UploadId,
  1548. /** 单次返回最大的条目数量,默认1000 */
  1549. MaxParts?: number,
  1550. /** 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 */
  1551. PartNumberMarker?: string,
  1552. /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */
  1553. EncodingType?: EncodingType,
  1554. }
  1555. /** multipartListPart 接口返回值 */
  1556. interface MultipartListPartResult extends GeneralResult {
  1557. /** 用来说明本次分块上传中每个块的信息 */
  1558. Part: {
  1559. /** 块的编号 */
  1560. PartNumber: PartNumber,
  1561. /** 说明块最后被修改时间 */
  1562. LastModified: IsoDateTime,
  1563. /** 块的 MD5 算法校验值 */
  1564. ETag: ETag,
  1565. /** 说明块大小,单位是 Byte */
  1566. Size: number,
  1567. }[],
  1568. /** 上传任务所有者的信息 */
  1569. Owner: Owner,
  1570. /** 上传任务发起者的信息 */
  1571. Initiator: Initiator
  1572. /** 假如返回条目被截断,则返回 NextMarker 就是下一个条目的起点 */
  1573. NextPartNumberMarker: number,
  1574. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  1575. StorageClass: StorageClass,
  1576. /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */
  1577. IsTruncated: BooleanString,
  1578. }
  1579. // multipartAbort
  1580. /** multipartAbort 接口参数 */
  1581. interface MultipartAbortParams extends ObjectParams {
  1582. UploadId: string,
  1583. }
  1584. /** multipartAbort 接口返回值 */
  1585. interface MultipartAbortResult extends GeneralResult {}
  1586. // sliceUploadFile
  1587. /** sliceUploadFile 接口参数 */
  1588. interface SliceUploadFileParams extends ObjectParams {
  1589. /** 要上传的本地文件对象 */
  1590. Body: File | Blob,
  1591. /** 分块上传时,每片的字节数大小,默认值1048576(1MB) */
  1592. ChunkSize?: number,
  1593. /** 请求里的 Url Query 参数 */
  1594. Query?: string,
  1595. /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */
  1596. CacheControl?: string,
  1597. /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */
  1598. ContentDisposition?: string,
  1599. /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */
  1600. ContentEncoding?: string,
  1601. /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或image/jpeg */
  1602. ContentType?: string,
  1603. /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */
  1604. Expires?: string,
  1605. /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */
  1606. Expect?: string,
  1607. /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */
  1608. ACL?: ObjectACL,
  1609. /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1610. GrantRead?: Grant,
  1611. /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1612. GrantReadAcp?: Grant,
  1613. /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1614. GrantWriteAcp?: Grant,
  1615. /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */
  1616. GrantFullControl?: Grant,
  1617. /** 对象存储类型。枚举值 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING @see https://cloud.tencent.com/document/product/436/33417 */
  1618. StorageClass?: StorageClass,
  1619. /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB,注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */
  1620. 'x-cos-meta-*'?: string,
  1621. /** 任务开始上传的回调方法 */
  1622. onTaskReady?: (TaskId: COS.TaskId) => void,
  1623. onTaskStart?: (TaskInfo: COS.Task) => void,
  1624. /** 上传的进度回调方法 */
  1625. onProgress?: onProgress,
  1626. /** 续传校验的进度回调方法 */
  1627. onHashProgress?: onProgress,
  1628. }
  1629. /** sliceUploadFile 接口返回值 */
  1630. interface SliceUploadFileResult extends GeneralResult {
  1631. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1632. ETag: ETag,
  1633. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  1634. Location: string,
  1635. /** 对象的版本 ID */
  1636. VersionId?: VersionId,
  1637. }
  1638. // abortUploadTask
  1639. /** abortUploadTask 接口参数 */
  1640. interface AbortUploadTaskParams extends ObjectParams {
  1641. /** 清理上传任务的级别,枚举值 'task' | 'file' | 'bucket',默认 task */
  1642. Level?: 'task' | 'file' | 'bucket',
  1643. /** 要清理的 UploadId,Level 为 task 时必选 */
  1644. UploadId?: UploadId,
  1645. }
  1646. /** abortUploadTask 接口返回值 */
  1647. interface AbortUploadTaskResult extends GeneralResult {}
  1648. // uploadFiles
  1649. type UploadFileItemParams = (PutObjectParams | SliceUploadFileParams) & {
  1650. /** 要上传的本地文件路径 */
  1651. Body: UploadBody,
  1652. /** 上传的进度回调方法 */
  1653. onProgress?: onProgress,
  1654. /** 上传完成回调方法 */
  1655. onFileFinish?: (err: Error, data?: Record<string, any>) => void,
  1656. }
  1657. /** 要上传的单个文件参数 */
  1658. interface UploadFileItemResult extends GeneralResult {
  1659. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1660. ETag: ETag,
  1661. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  1662. Location: string,
  1663. /** 对象的版本 ID */
  1664. VersionId?: VersionId,
  1665. }
  1666. interface UploadFilesParams {
  1667. /** 要上传的文件参数列表 */
  1668. files: UploadFileItemParams[],
  1669. /** 使用 uploadFiles 批量上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */
  1670. SliceSize?: number,
  1671. /** 所有文件整体上传进度回调方法 */
  1672. onProgress?: onProgress,
  1673. /** 所有文件上传完成回调方法 */
  1674. onFileFinish?: (err: CosError, data?: Record<string, any>) => void,
  1675. }
  1676. /** uploadFiles 接口返回值 */
  1677. interface UploadFilesResult extends GeneralResult {
  1678. /** 文件列表上传结果 */
  1679. files: {
  1680. /** 单个文件上传参数 */
  1681. options: UploadFileItemParams,
  1682. /** 单个文件上传错误信息 */
  1683. error: Error,
  1684. /** 单个文件上传成功信息 */
  1685. data: UploadFileItemResult,
  1686. }[],
  1687. }
  1688. // uploadFile 高级上传
  1689. interface FileFinishInfo {
  1690. err: Error;
  1691. data: UploadFileItemResult;
  1692. options: UploadFileItemParams;
  1693. }
  1694. type onFileFinish = (err: Error, data: UploadFileItemResult, options: UploadFileItemParams) => void;
  1695. type UploadFileParams = (PutObjectParams | SliceUploadFileParams) & {
  1696. /** 要上传的本地文件路径 */
  1697. Body: UploadBody,
  1698. /** 使用 uploadFile 高级上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */
  1699. SliceSize?: number,
  1700. /** 上传的进度回调方法 */
  1701. onProgress?: onProgress,
  1702. /** 上传完成回调方法 */
  1703. onFileFinish?: onFileFinish,
  1704. };
  1705. /** uploadFiles 接口返回值 */
  1706. interface UploadFileResult extends GeneralResult {
  1707. /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */
  1708. ETag: ETag,
  1709. /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */
  1710. Location: string,
  1711. /** 对象的版本 ID */
  1712. VersionId?: VersionId,
  1713. }
  1714. // sliceCopyFile
  1715. /** sliceCopyFile 接口参数 */
  1716. interface SliceCopyFileParams extends ObjectParams {
  1717. /** 源对象的 URL,其中对象键需经过 URLEncode,可以通过 versionId 参数指定源对象的版本,例如: sourcebucket-1250000001.cos.ap-shanghai.myqcloud.com/example-%E8%85%BE%E8%AE%AF%E4%BA%91.jpg 或 sourcebucket-1250000001.cos.ap-shanghai.myqcloud.com/example-%E8%85%BE%E8%AE%AF%E4%BA%91.jpg?versionId=MTg0NDUxNzYzMDc0NDMzNDExOTc */
  1718. CopySource: string,
  1719. /** 使用 sliceCopyFile 分块复制文件时,文件大小大于该数值将使用分块复制 ,否则将调用简单复制,默认值10485760(10MB) */
  1720. CopySliceSize?: number,
  1721. /** 使用 sliceCopyFile 分块复制文件时,每片的大小字节数,默认值10485760(10MB) */
  1722. CopyChunkSize?: number,
  1723. /** 分片复制进度回调方法 */
  1724. onProgress: onProgress
  1725. }
  1726. /** sliceCopyFile 接口返回值 */
  1727. interface SliceCopyFileResult extends GeneralResult {}
  1728. // getTaskList
  1729. type TaskId = string
  1730. type Task = {
  1731. /** 上传任务 ID */
  1732. id: TaskId,
  1733. /** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
  1734. Bucket: Bucket,
  1735. /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
  1736. Region: Region,
  1737. /** 请求的对象键,最前面不带 /,例如 images/1.jpg */
  1738. Key: Key,
  1739. /** 上传状态 */
  1740. state: 'waiting' | 'checking' | 'uploading' | 'error' | 'paused' | 'success' | 'canceled',
  1741. /** 上传错误信息 */
  1742. error: string | Error | { Code: string, Message: string },
  1743. /** 已上传内容大小,单位 B(字节) */
  1744. loaded: number,
  1745. /** 上传文件大小,单位 B(字节) */
  1746. size: number,
  1747. /** 上传速递,单位 B/s */
  1748. speed: number,
  1749. /** 上传进度,范围 0-1,保留两位小数 */
  1750. percent: number,
  1751. /** 续传校验进度,范围 0-1,保留两位小数 */
  1752. hashPercent: number,
  1753. }
  1754. /** 上传任务列表 */
  1755. type TaskList = Task[]
  1756. // request
  1757. /** request 接口参数 */
  1758. interface RequestParams extends BucketParams {
  1759. /** 操作方法,如 get,post,delete, head 等 HTTP 方法 */
  1760. Method: string,
  1761. /** 请求的对象键,最前面不带 / */
  1762. Key?: Key,
  1763. /** 请求里的 Url Query 参数 */
  1764. Query?: Query,
  1765. /** 请求里的 Body 参数 */
  1766. Body?: Body,
  1767. /** 请求的 API 动作接口(可理解为不带 = 的 Query 参数),如 acl、tagging、image_process 等 */
  1768. Action?: Action,
  1769. /** 请求url */
  1770. Url?: string,
  1771. /** 返回值body是否不需要解析 */
  1772. RawBody?: boolean,
  1773. /** 返回文件内容格式,如string、blob、arraybuffer */
  1774. DataType?: string,
  1775. }
  1776. /** Request 接口返回值 */
  1777. interface RequestResult extends GeneralResult {
  1778. Body?: Buffer,
  1779. }
  1780. // getObjectUrl
  1781. /** getObjectUrl 接口参数 */
  1782. interface GetObjectUrlParams extends ObjectParams {
  1783. /** 获取的 Url 是否计算签名 */
  1784. Sign?: boolean,
  1785. /** 请求方法 */
  1786. Method?: Method,
  1787. /** 请求里的 Url Query 参数,传入该值中的 key/value 将会被 URLEncode */
  1788. Query?: Query,
  1789. /** 请求里的 Url Query 参数。传入该值将直接拼接在 Url 上,不会对其进行 URLEncode */
  1790. QueryString?: string,
  1791. /** 签名几秒后失效,默认为900秒 */
  1792. Expires?: number,
  1793. /** 是否使用全球加速域名,默认false */
  1794. UseAccelerate?: boolean,
  1795. }
  1796. /** getObjectUrl 接口返回值 */
  1797. interface GetObjectUrlResult {
  1798. /** 返回对象 Url */
  1799. Url: string
  1800. }
  1801. // getV4Auth
  1802. interface GetV4AuthParams {
  1803. /** 计算签名用的密钥 SecretId,如果不传会用实例本身的凭证,可选 */
  1804. SecretId?: string,
  1805. /** 计算签名用的密钥 SecretKey,如果不传会用实例本身的凭证,可选 */
  1806. SecretKey?: string,
  1807. /** 存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */
  1808. Bucket?: Bucket,
  1809. /** 请求的对象键,最前面不带 /,例如 images/1.jpg */
  1810. Key?: Key,
  1811. /** 签名几秒后失效,默认为900秒 */
  1812. Expires?: number,
  1813. }
  1814. // getAuth
  1815. interface GetAuthParams {
  1816. /** 计算签名用的密钥 SecretId,如果不传会用实例本身的凭证,可选 */
  1817. SecretId?: string,
  1818. /** 计算签名用的密钥 SecretKey,如果不传会用实例本身的凭证,可选 */
  1819. SecretKey?: string,
  1820. /** 请求的存储桶,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */
  1821. Bucket?: Bucket,
  1822. /** 请求的地域,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */
  1823. Region?: Region,
  1824. /** 请求方法 */
  1825. Method?: Method,
  1826. /** 请求的对象键,最前面不带 /,例如 images/1.jpg */
  1827. Key?: Key,
  1828. /** 签名几秒后失效,默认为900秒 */
  1829. Expires?: number,
  1830. /** 请求里的 Url Query 参数 */
  1831. Query?: Query,
  1832. /** 请求里的 Header 参数 */
  1833. Headers?: Headers,
  1834. /** 默认为true,将host加入签名计算,关闭后可能导致越权风险,建议保持为true */
  1835. ForceSignHost?: boolean,
  1836. }
  1837. }
  1838. /**
  1839. * COS 类,创建该类的实例可用于调用 COS API
  1840. * @see https://cloud.tencent.com/document/product/436/7751
  1841. */
  1842. declare class COS {
  1843. // 构造方法
  1844. constructor(options: COS.COSOptions);
  1845. // 静态属性
  1846. /** 当前 SDK 版本号 */
  1847. static version: string;
  1848. // 静态方法
  1849. /** 计算签名 */
  1850. static getAuthorization: (options: COS.StaticGetAuthorizationOptions) => string;
  1851. /** 工具 */
  1852. static util: COS.Util;
  1853. // 实例方法
  1854. /** 获取用户的 bucket 列表 @see https://cloud.tencent.com/document/product/436/8291 */
  1855. getService(params: COS.GetServiceParams, callback: (err: COS.CosError, data: COS.GetServiceResult) => void): void;
  1856. getService(params: COS.GetServiceParams): Promise<COS.GetServiceResult>;
  1857. /** 创建 Bucket,并初始化访问权限 @see https://cloud.tencent.com/document/product/436/7738 */
  1858. putBucket(params: COS.PutBucketParams, callback: (err: COS.CosError, data: COS.PutBucketResult) => void): void;
  1859. putBucket(params: COS.PutBucketParams): Promise<COS.PutBucketResult>;
  1860. /** 查看是否存在该 Bucket,是否有权限访问 @see https://cloud.tencent.com/document/product/436/7735 */
  1861. headBucket(params: COS.HeadBucketParams, callback: (err: COS.CosError, data: COS.HeadBucketResult) => void): void;
  1862. headBucket(params: COS.HeadBucketParams): Promise<COS.HeadBucketResult>;
  1863. /** 获取 Bucket 下的 Object 列表 @see https://cloud.tencent.com/document/product/436/7734 */
  1864. getBucket(params: COS.GetBucketParams, callback: (err: COS.CosError, data: COS.GetBucketResult) => void): void;
  1865. getBucket(params: COS.GetBucketParams): Promise<COS.GetBucketResult>;
  1866. /** 获取 Bucket 下的 Object 版本列表 @see https://cloud.tencent.com/document/product/436/35521 */
  1867. listObjectVersions(params: COS.ListObjectVersionsParams, callback: (err: COS.CosError, data: COS.ListObjectVersionsResult) => void): void;
  1868. listObjectVersions(params: COS.ListObjectVersionsParams): Promise<COS.ListObjectVersionsResult>;
  1869. /** 删除 Bucket @see https://cloud.tencent.com/document/product/436/7732 */
  1870. deleteBucket(params: COS.DeleteBucketParams, callback: (err: COS.CosError, data: COS.DeleteBucketResult) => void): void;
  1871. deleteBucket(params: COS.DeleteBucketParams): Promise<COS.DeleteBucketResult>;
  1872. /** 设置 Bucket 的 权限列表 @see https://cloud.tencent.com/document/product/436/7737 */
  1873. putBucketAcl(params: COS.PutBucketAclParams, callback: (err: COS.CosError, data: COS.PutBucketAclResult) => void): void;
  1874. putBucketAcl(params: COS.PutBucketAclParams): Promise<COS.PutBucketAclResult>;
  1875. /** 获取 Bucket 的 权限列表 @see https://cloud.tencent.com/document/product/436/7733 */
  1876. getBucketAcl(params: COS.GetBucketAclParams, callback: (err: COS.CosError, data: COS.GetBucketAclResult) => void): void;
  1877. getBucketAcl(params: COS.GetBucketAclParams): Promise<COS.GetBucketAclResult>;
  1878. /** 设置 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8279 */
  1879. putBucketCors(params: COS.PutBucketCorsParams, callback: (err: COS.CosError, data: COS.PutBucketCorsResult) => void): void;
  1880. putBucketCors(params: COS.PutBucketCorsParams): Promise<COS.PutBucketCorsResult>;
  1881. /** 获取 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8274 */
  1882. getBucketCors(params: COS.GetBucketCorsParams, callback: (err: COS.CosError, data: COS.GetBucketCorsResult) => void): void;
  1883. getBucketCors(params: COS.GetBucketCorsParams): Promise<COS.GetBucketCorsResult>;
  1884. /** 删除 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8283 */
  1885. deleteBucketCors(params: COS.DeleteBucketCorsParams, callback: (err: COS.CosError, data: COS.DeleteBucketCorsResult) => void): void;
  1886. deleteBucketCors(params: COS.DeleteBucketCorsParams): Promise<COS.DeleteBucketCorsResult>;
  1887. /** 获取 Bucket 的 地域信息 */
  1888. getBucketLocation(params: COS.GetBucketLocationParams, callback: (err: COS.CosError, data: COS.GetBucketLocationResult) => void): void;
  1889. getBucketLocation(params: COS.GetBucketLocationParams): Promise<COS.GetBucketLocationResult>;
  1890. /** 获取 Bucket 的读取权限策略 @see https://cloud.tencent.com/document/product/436/8282 */
  1891. putBucketPolicy(params: COS.PutBucketPolicyParams, callback: (err: COS.CosError, data: COS.PutBucketPolicyResult) => void): void;
  1892. putBucketPolicy(params: COS.PutBucketPolicyParams): Promise<COS.PutBucketPolicyResult>;
  1893. /** 获取 Bucket 的读取权限策略 @see https://cloud.tencent.com/document/product/436/8276 */
  1894. getBucketPolicy(params: COS.GetBucketPolicyParams, callback: (err: COS.CosError, data: COS.GetBucketPolicyResult) => void): void;
  1895. getBucketPolicy(params: COS.GetBucketPolicyParams): Promise<COS.GetBucketPolicyResult>;
  1896. /** 删除 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8285 */
  1897. deleteBucketPolicy(params: COS.DeleteBucketPolicyParams, callback: (err: COS.CosError, data: COS.DeleteBucketPolicyResult) => void): void;
  1898. deleteBucketPolicy(params: COS.DeleteBucketPolicyParams): Promise<COS.DeleteBucketPolicyResult>;
  1899. /** 设置 Bucket 的标签 @see https://cloud.tencent.com/document/product/436/34838 */
  1900. putBucketTagging(params: COS.PutBucketTaggingParams, callback: (err: COS.CosError, data: COS.PutBucketTaggingResult) => void): void;
  1901. putBucketTagging(params: COS.PutBucketTaggingParams): Promise<COS.PutBucketTaggingResult>;
  1902. /** 获取 Bucket 的标签设置 @see https://cloud.tencent.com/document/product/436/34837 */
  1903. getBucketTagging(params: COS.GetBucketTaggingParams, callback: (err: COS.CosError, data: COS.GetBucketTaggingResult) => void): void;
  1904. getBucketTagging(params: COS.GetBucketTaggingParams): Promise<COS.GetBucketTaggingResult>;
  1905. /** 删除 Bucket 的 标签设置 @see https://cloud.tencent.com/document/product/436/34836 */
  1906. deleteBucketTagging(params: COS.DeleteBucketTaggingParams, callback: (err: COS.CosError, data: COS.DeleteBucketTaggingResult) => void): void;
  1907. deleteBucketTagging(params: COS.DeleteBucketTaggingParams): Promise<COS.DeleteBucketTaggingResult>;
  1908. /** 设置 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8280 */
  1909. putBucketLifecycle(params: COS.PutBucketLifecycleParams, callback: (err: COS.CosError, data: COS.PutBucketLifecycleResult) => void): void;
  1910. putBucketLifecycle(params: COS.PutBucketLifecycleParams): Promise<COS.PutBucketLifecycleResult>;
  1911. /** 获取 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8280 */
  1912. getBucketLifecycle(params: COS.GetBucketLifecycleParams, callback: (err: COS.CosError, data: COS.GetBucketLifecycleResult) => void): void;
  1913. getBucketLifecycle(params: COS.GetBucketLifecycleParams): Promise<COS.GetBucketLifecycleResult>;
  1914. /** 删除 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8278 */
  1915. deleteBucketLifecycle(params: COS.DeleteBucketLifecycleParams, callback: (err: COS.CosError, data: COS.DeleteBucketLifecycleResult) => void): void;
  1916. deleteBucketLifecycle(params: COS.DeleteBucketLifecycleParams): Promise<COS.DeleteBucketLifecycleResult>;
  1917. /** 设置 Bucket 版本 @see https://cloud.tencent.com/document/product/436/19889 */
  1918. putBucketVersioning(params: COS.PutBucketVersioningParams, callback: (err: COS.CosError, data: COS.PutBucketVersioningResult) => void): void;
  1919. putBucketVersioning(params: COS.PutBucketVersioningParams): Promise<COS.PutBucketVersioningResult>;
  1920. /** 获取 Bucket 版本 @see https://cloud.tencent.com/document/product/436/19888 */
  1921. getBucketVersioning(params: COS.GetBucketVersioningParams, callback: (err: COS.CosError, data: COS.GetBucketVersioningResult) => void): void;
  1922. getBucketVersioning(params: COS.GetBucketVersioningParams): Promise<COS.GetBucketVersioningResult>;
  1923. /** 设置 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19223 */
  1924. putBucketReplication(params: COS.PutBucketReplicationParams, callback: (err: COS.CosError, data: COS.PutBucketReplicationResult) => void): void;
  1925. putBucketReplication(params: COS.PutBucketReplicationParams): Promise<COS.PutBucketReplicationResult>;
  1926. /** 获取 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19222 */
  1927. getBucketReplication(params: COS.GetBucketReplicationParams, callback: (err: COS.CosError, data: COS.GetBucketReplicationResult) => void): void;
  1928. getBucketReplication(params: COS.GetBucketReplicationParams): Promise<COS.GetBucketReplicationResult>;
  1929. /** 删除 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19221 */
  1930. deleteBucketReplication(params: COS.DeleteBucketReplicationParams, callback: (err: COS.CosError, data: COS.DeleteBucketReplicationResult) => void): void;
  1931. deleteBucketReplication(params: COS.DeleteBucketReplicationParams): Promise<COS.DeleteBucketReplicationResult>;
  1932. /** 设置 Bucket 静态网站配置信息 @see https://cloud.tencent.com/document/product/436/31930 */
  1933. putBucketWebsite(params: COS.PutBucketWebsiteParams, callback: (err: COS.CosError, data: COS.PutBucketWebsiteResult) => void): void;
  1934. putBucketWebsite(params: COS.PutBucketWebsiteParams): Promise<COS.PutBucketWebsiteResult>;
  1935. /** 获取 Bucket 的静态网站配置信息 @see https://cloud.tencent.com/document/product/436/31929 */
  1936. getBucketWebsite(params: COS.GetBucketWebsiteParams, callback: (err: COS.CosError, data: COS.GetBucketWebsiteResult) => void): void;
  1937. getBucketWebsite(params: COS.GetBucketWebsiteParams): Promise<COS.GetBucketWebsiteResult>;
  1938. /** 删除 Bucket 的静态网站配置 @see https://cloud.tencent.com/document/product/436/31928 */
  1939. deleteBucketWebsite(params: COS.DeleteBucketWebsiteParams, callback: (err: COS.CosError, data: COS.DeleteBucketWebsiteResult) => void): void;
  1940. deleteBucketWebsite(params: COS.DeleteBucketWebsiteParams): Promise<COS.DeleteBucketWebsiteResult>;
  1941. /** 设置 Bucket 的防盗链白名单或者黑名单 @see https://cloud.tencent.com/document/product/436/32492 */
  1942. putBucketReferer(params: COS.PutBucketRefererParams, callback: (err: COS.CosError, data: COS.PutBucketRefererResult) => void): void;
  1943. putBucketReferer(params: COS.PutBucketRefererParams): Promise<COS.PutBucketRefererResult>;
  1944. /** 获取 Bucket 的防盗链白名单或者黑名单 @see https://cloud.tencent.com/document/product/436/32493 */
  1945. getBucketReferer(params: COS.GetBucketRefererParams, callback: (err: COS.CosError, data: COS.GetBucketRefererResult) => void): void;
  1946. getBucketReferer(params: COS.GetBucketRefererParams): Promise<COS.GetBucketRefererResult>;
  1947. /** 设置 Bucket 自定义域名 */
  1948. putBucketDomain(params: COS.PutBucketDomainParams, callback: (err: COS.CosError, data: COS.PutBucketDomainResult) => void): void;
  1949. putBucketDomain(params: COS.PutBucketDomainParams): Promise<COS.PutBucketDomainResult>;
  1950. /** 获取 Bucket 的自定义域名 */
  1951. getBucketDomain(params: COS.GetBucketDomainParams, callback: (err: COS.CosError, data: COS.GetBucketDomainResult) => void): void;
  1952. getBucketDomain(params: COS.GetBucketDomainParams): Promise<COS.GetBucketDomainResult>;
  1953. /** 删除 Bucket 自定义域名 */
  1954. deleteBucketDomain(params: COS.DeleteBucketDomainParams, callback: (err: COS.CosError, data: COS.DeleteBucketDomainResult) => void): void;
  1955. deleteBucketDomain(params: COS.DeleteBucketDomainParams): Promise<COS.DeleteBucketDomainResult>;
  1956. /** 设置 Bucket 的回源 */
  1957. putBucketOrigin(params: COS.PutBucketOriginParams, callback: (err: COS.CosError, data: COS.PutBucketOriginResult) => void): void;
  1958. putBucketOrigin(params: COS.PutBucketOriginParams): Promise<COS.PutBucketOriginResult>;
  1959. /** 获取 Bucket 的回源 */
  1960. getBucketOrigin(params: COS.GetBucketOriginParams, callback: (err: COS.CosError, data: COS.GetBucketOriginResult) => void): void;
  1961. getBucketOrigin(params: COS.GetBucketOriginParams): Promise<COS.GetBucketOriginResult>;
  1962. /** 删除 Bucket 的回源 */
  1963. deleteBucketOrigin(params: COS.DeleteBucketOriginParams, callback: (err: COS.CosError, data: COS.DeleteBucketOriginResult) => void): void;
  1964. deleteBucketOrigin(params: COS.DeleteBucketOriginParams): Promise<COS.DeleteBucketOriginResult>;
  1965. /** 设置 Bucket 的日志记录 @see https://cloud.tencent.com/document/product/436/17054 */
  1966. putBucketLogging(params: COS.PutBucketLoggingParams, callback: (err: COS.CosError, data: COS.PutBucketLoggingResult) => void): void;
  1967. putBucketLogging(params: COS.PutBucketLoggingParams): Promise<COS.PutBucketLoggingResult>;
  1968. /** 获取 Bucket 的日志记录 @see https://cloud.tencent.com/document/product/436/17053 */
  1969. getBucketLogging(params: COS.GetBucketLoggingParams, callback: (err: COS.CosError, data: COS.GetBucketLoggingResult) => void): void;
  1970. getBucketLogging(params: COS.GetBucketLoggingParams): Promise<COS.GetBucketLoggingResult>;
  1971. /** 创建/编辑 Bucket 的清单任务 @see https://cloud.tencent.com/document/product/436/33707 */
  1972. putBucketInventory(params: COS.PutBucketInventoryParams, callback: (err: COS.CosError, data: COS.PutBucketInventoryResult) => void): void;
  1973. putBucketInventory(params: COS.PutBucketInventoryParams): Promise<COS.PutBucketInventoryResult>;
  1974. /** 获取 Bucket 的清单任务信息 @see https://cloud.tencent.com/document/product/436/33705 */
  1975. getBucketInventory(params: COS.GetBucketInventoryParams, callback: (err: COS.CosError, data: COS.GetBucketInventoryResult) => void): void;
  1976. getBucketInventory(params: COS.GetBucketInventoryParams): Promise<COS.GetBucketInventoryResult>;
  1977. /** 获取 Bucket 的清单任务信息 @see https://cloud.tencent.com/document/product/436/33706 */
  1978. listBucketInventory(params: COS.ListBucketInventoryParams, callback: (err: COS.CosError, data: COS.ListBucketInventoryResult) => void): void;
  1979. listBucketInventory(params: COS.ListBucketInventoryParams): Promise<COS.ListBucketInventoryResult>;
  1980. /** 删除 Bucket 的清单任务 @see https://cloud.tencent.com/document/product/436/33704 */
  1981. deleteBucketInventory(params: COS.DeleteBucketInventoryParams, callback: (err: COS.CosError, data: COS.DeleteBucketInventoryResult) => void): void;
  1982. deleteBucketInventory(params: COS.DeleteBucketInventoryParams): Promise<COS.DeleteBucketInventoryResult>;
  1983. /** 启用或者暂停存储桶的全球加速功能 @see https://cloud.tencent.com/document/product/436/38869 */
  1984. putBucketAccelerate(params: COS.PutBucketAccelerateParams, callback: (err: COS.CosError, data: COS.PutBucketAccelerateResult) => void): void;
  1985. putBucketAccelerate(params: COS.PutBucketAccelerateParams): Promise<COS.PutBucketAccelerateResult>;
  1986. /** 查询存储桶的全球加速功能配置 @see https://cloud.tencent.com/document/product/436/38868 */
  1987. getBucketAccelerate(params: COS.GetBucketAccelerateParams, callback: (err: COS.CosError, data: COS.GetBucketAccelerateResult) => void): void;
  1988. getBucketAccelerate(params: COS.GetBucketAccelerateParams): Promise<COS.GetBucketAccelerateResult>;
  1989. /** 设置指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40136 */
  1990. putBucketEncryption(params: COS.PutBucketEncryptionParams, callback: (err: COS.CosError, data: COS.PutBucketEncryptionResult) => void): void;
  1991. putBucketEncryption(params: COS.PutBucketEncryptionParams): Promise<COS.PutBucketEncryptionResult>;
  1992. /** 查询指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40137 */
  1993. getBucketEncryption(params: COS.GetBucketEncryptionParams, callback: (err: COS.CosError, data: COS.GetBucketEncryptionResult) => void): void;
  1994. getBucketEncryption(params: COS.GetBucketEncryptionParams): Promise<COS.GetBucketEncryptionResult>;
  1995. /** 删除指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40138 */
  1996. deleteBucketEncryption(params: COS.DeleteBucketEncryptionParams, callback: (err: COS.CosError, data: COS.DeleteBucketEncryptionResult) => void): void;
  1997. deleteBucketEncryption(params: COS.DeleteBucketEncryptionParams): Promise<COS.DeleteBucketEncryptionResult>;
  1998. /** 取回对应对象(Object)的元数据,Head的权限与Get的权限一致 @see https://cloud.tencent.com/document/product/436/7745 */
  1999. headObject(params: COS.HeadObjectParams, callback: (err: COS.CosError, data: COS.HeadObjectResult) => void): void;
  2000. headObject(params: COS.HeadObjectParams): Promise<COS.HeadObjectResult>;
  2001. /** 下载对象(Object) @see https://cloud.tencent.com/document/product/436/7753 */
  2002. getObject(params: COS.GetObjectParams, callback: (err: COS.CosError, data: COS.GetObjectResult) => void): void;
  2003. getObject(params: COS.GetObjectParams): Promise<COS.GetObjectResult>;
  2004. /** 简单上传对象(Object)至指定存储桶 @see https://cloud.tencent.com/document/product/436/7749 */
  2005. putObject(params: COS.PutObjectParams, callback: (err: COS.CosError, data: COS.PutObjectResult) => void): void;
  2006. putObject(params: COS.PutObjectParams): Promise<COS.PutObjectResult>;
  2007. /** 删除一个指定的对象(Object) @see https://cloud.tencent.com/document/product/436/7743 */
  2008. deleteObject(params: COS.DeleteObjectParams, callback: (err: COS.CosError, data: COS.DeleteObjectResult) => void): void;
  2009. deleteObject(params: COS.DeleteObjectParams): Promise<COS.DeleteObjectResult>;
  2010. /** 批量删除指定存储桶中的多个对象(Object) @see https://cloud.tencent.com/document/product/436/8289 */
  2011. deleteMultipleObject(params: COS.DeleteMultipleObjectParams, callback: (err: COS.CosError, data: COS.DeleteMultipleObjectResult) => void): void;
  2012. deleteMultipleObject(params: COS.DeleteMultipleObjectParams): Promise<COS.DeleteMultipleObjectResult>;
  2013. /** 获取 Object 的权限列表 @see https://cloud.tencent.com/document/product/436/7744 */
  2014. getObjectAcl(params: COS.GetObjectAclParams, callback: (err: COS.CosError, data: COS.GetObjectAclResult) => void): void;
  2015. getObjectAcl(params: COS.GetObjectAclParams): Promise<COS.GetObjectAclResult>;
  2016. /** 设置 Object 的权限列表 @see https://cloud.tencent.com/document/product/436/7748 */
  2017. putObjectAcl(params: COS.PutObjectAclParams, callback: (err: COS.CosError, data: COS.PutObjectAclResult) => void): void;
  2018. putObjectAcl(params: COS.PutObjectAclParams): Promise<COS.PutObjectAclResult>;
  2019. /** 跨域资源共享(CORS)的预检(Preflight)请求 @see https://cloud.tencent.com/document/product/436/8288 */
  2020. optionsObject(params: COS.OptionsObjectParams, callback: (err: COS.CosError, data: COS.OptionsObjectResult) => void): void;
  2021. optionsObject(params: COS.OptionsObjectParams): Promise<COS.OptionsObjectResult>;
  2022. /** 恢复归档对象 @see https://cloud.tencent.com/document/product/436/12633 */
  2023. restoreObject(params: COS.RestoreObjectParams, callback: (err: COS.CosError, data: COS.RestoreObjectResult) => void): void;
  2024. restoreObject(params: COS.RestoreObjectParams): Promise<COS.RestoreObjectResult>;
  2025. /** 检索对象内容 @see https://cloud.tencent.com/document/product/436/37641 */
  2026. selectObjectContent(params: COS.SelectObjectContentParams, callback: (err: COS.CosError, data: COS.SelectObjectContentResult) => void): void;
  2027. selectObjectContent(params: COS.SelectObjectContentParams): Promise<COS.SelectObjectContentResult>;
  2028. /** 复制对象 @see https://cloud.tencent.com/document/product/436/10881 */
  2029. putObjectCopy(params: COS.PutObjectCopyParams, callback: (err: COS.CosError, data: COS.PutObjectCopyResult) => void): void;
  2030. putObjectCopy(params: COS.PutObjectCopyParams): Promise<COS.PutObjectCopyResult>;
  2031. /** 设置对象标签 @see https://cloud.tencent.com/document/product/436/42997 */
  2032. putObjectTagging(params: COS.PutObjectTaggingParams, callback: (err: COS.CosError, data: COS.PutObjectTaggingResult) => void): void;
  2033. putObjectTagging(params: COS.PutObjectTaggingParams): Promise<COS.PutObjectTaggingResult>;
  2034. /** 查询对象标签 @see https://cloud.tencent.com/document/product/436/42998 */
  2035. getObjectTagging(params: COS.GetObjectTaggingParams, callback: (err: COS.CosError, data: COS.GetObjectTaggingResult) => void): void;
  2036. getObjectTagging(params: COS.GetObjectTaggingParams): Promise<COS.GetObjectTaggingResult>;
  2037. /** 删除对象标签 @see https://cloud.tencent.com/document/product/436/42999 */
  2038. deleteObjectTagging(params: COS.DeleteObjectTaggingParams, callback: (err: COS.CosError, data: COS.DeleteObjectTaggingResult) => void): void;
  2039. deleteObjectTagging(params: COS.DeleteObjectTaggingParams): Promise<COS.DeleteObjectTaggingResult>;
  2040. /** 初始化分块上传 @see https://cloud.tencent.com/document/product/436/7746 */
  2041. multipartInit(params: COS.MultipartInitParams, callback: (err: COS.CosError, data: COS.MultipartInitResult) => void): void;
  2042. multipartInit(params: COS.MultipartInitParams): Promise<COS.MultipartInitResult>;
  2043. /** 分块上传 @see https://cloud.tencent.com/document/product/436/7750 */
  2044. multipartUpload(params: COS.MultipartUploadParams, callback: (err: COS.CosError, data: COS.MultipartUploadResult) => void): void;
  2045. multipartUpload(params: COS.MultipartUploadParams): Promise<COS.MultipartUploadResult>;
  2046. /** 分块上传 @see https://cloud.tencent.com/document/product/436/8287 */
  2047. uploadPartCopy(params: COS.UploadPartCopyParams, callback: (err: COS.CosError, data: COS.UploadPartCopyResult) => void): void;
  2048. uploadPartCopy(params: COS.UploadPartCopyParams): Promise<COS.UploadPartCopyResult>;
  2049. /** 完成分块上传 @see https://cloud.tencent.com/document/product/436/7742 */
  2050. multipartComplete(params: COS.MultipartCompleteParams, callback: (err: COS.CosError, data: COS.MultipartCompleteResult) => void): void;
  2051. multipartComplete(params: COS.MultipartCompleteParams): Promise<COS.MultipartCompleteResult>;
  2052. /** 分块上传任务列表查询 @see https://cloud.tencent.com/document/product/436/7736 */
  2053. multipartList(params: COS.MultipartListParams, callback: (err: COS.CosError, data: COS.MultipartListResult) => void): void;
  2054. multipartList(params: COS.MultipartListParams): Promise<COS.MultipartListResult>;
  2055. /** 上传的分块列表查询 @see https://cloud.tencent.com/document/product/436/7747 */
  2056. multipartListPart(params: COS.MultipartListPartParams, callback: (err: COS.CosError, data: COS.MultipartListPartResult) => void): void;
  2057. multipartListPart(params: COS.MultipartListPartParams): Promise<COS.MultipartListPartResult>;
  2058. /** 抛弃分块上传 @see https://cloud.tencent.com/document/product/436/7740 */
  2059. multipartAbort(params: COS.MultipartAbortParams, callback: (err: COS.CosError, data: COS.MultipartAbortResult) => void): void;
  2060. multipartAbort(params: COS.MultipartAbortParams): Promise<COS.MultipartAbortResult>;
  2061. /** 分片上传文件,封装好分片上传的多个步骤的上传方法。 */
  2062. sliceUploadFile(params: COS.SliceUploadFileParams, callback: (err: COS.CosError, data: COS.SliceUploadFileResult) => void): void;
  2063. sliceUploadFile(params: COS.SliceUploadFileParams): Promise<COS.SliceUploadFileResult>;
  2064. /** 清理分片上传 UploadId,封装好的清理单个文件或存储桶所有文件未完成的 UploadId。 */
  2065. abortUploadTask(params: COS.AbortUploadTaskParams, callback: (err: COS.CosError, data: COS.AbortUploadTaskResult) => void): void;
  2066. abortUploadTask(params: COS.AbortUploadTaskParams): Promise<COS.AbortUploadTaskResult>;
  2067. /** 高级上传文件 */
  2068. uploadFile(params: COS.UploadFileParams, callback: (err: COS.CosError, data: COS.UploadFileResult) => void): void;
  2069. uploadFile(params: COS.UploadFileParams): Promise<COS.UploadFileResult>;
  2070. /** 批量上传文件 */
  2071. uploadFiles(params: COS.UploadFilesParams, callback: (err: COS.CosError, data: COS.UploadFilesResult) => void): void;
  2072. uploadFiles(params: COS.UploadFilesParams): Promise<COS.UploadFilesResult>;
  2073. /** 分片复制文件 */
  2074. sliceCopyFile(params: COS.SliceCopyFileParams, callback: (err: COS.CosError, data: COS.SliceCopyFileResult) => void): void;
  2075. sliceCopyFile(params: COS.SliceCopyFileParams): Promise<COS.SliceCopyFileResult>;
  2076. /** 获取上传任务列表 */
  2077. getTaskList(): COS.TaskList;
  2078. /** 判断上传队列是否有未完成的任务 */
  2079. pauseTask(taskId: COS.TaskId): void;
  2080. /** 判断上传队列是否有未完成的任务 */
  2081. restartTask(taskId: COS.TaskId): void;
  2082. /** 判断上传队列是否有未完成的任务 */
  2083. cancelTask(taskId: COS.TaskId): void;
  2084. /** 判断上传队列是否有未完成的任务 */
  2085. isUploadRunning(): boolean;
  2086. /** 分片复制文件 */
  2087. request(params: COS.RequestParams, callback: (err: COS.CosError, data: COS.RequestResult) => void): void;
  2088. request(params: COS.RequestParams): Promise<COS.RequestResult>;
  2089. /** 获取文件下载链接 @see https://cloud.tencent.com/document/product/436/35651 */
  2090. getObjectUrl(params: COS.GetObjectUrlParams, callback: (err: COS.CosError, data: COS.GetObjectUrlResult) => void): string;
  2091. /** cos.request */
  2092. request(params: COS.RequestParams, callback: (err: COS.CosError, data: COS.RequestResult) => void): void;
  2093. request(params: COS.RequestParams): Promise<COS.RequestResult>;
  2094. /** 追加上传 @see https://cloud.tencent.com/document/product/436/7741 */
  2095. appendObject(params: COS.AppendObjectParams, callback: (err: COS.CosError, data: COS.GeneralResult) => void): void;
  2096. appendObject(params: COS.AppendObjectParams): Promise<COS.GeneralResult>;
  2097. /** 获取 COS JSON API (v4) 签名 @see https://cloud.tencent.com/document/product/436/6054 */
  2098. getV4Auth(params: COS.GetV4AuthParams): COS.Authorization;
  2099. /** 获取 COS XMl API (v5) 签名 @see https://cloud.tencent.com/document/product/436/7778 */
  2100. getAuth(params: COS.GetAuthParams): COS.Authorization;
  2101. on(action: string, callback: (params?: any) => void): void;
  2102. off(action: string, callback: (params?: any) => void): void;
  2103. emit(action: string, data?: any): void;
  2104. }
  2105. export = COS;