index.d.ts 131 KB

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