/** * 腾讯云 COS Node.js SDK 类型声明 */ import { Stream } from 'stream'; /** * 定义 COS 命名空间,方便导出用到的变量类型给外部引用 */ declare namespace COS { /** 存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */ type Bucket = string; /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */ type Region = string; /** 请求的对象键,最前面不带 /,例如 images/1.jpg */ type Key = string; /** 请求路径,最前面带 /,例如 /images/1.jpg */ type Pathname = string; /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */ type VersionId = string; /** 前缀匹配,用来规定返回的文件前缀地址 */ type Prefix = string; /** 分块上传的任务 ID */ type UploadId = string; /** 标识本次分块上传的编号,范围在1 - 10000 */ type PartNumber = number; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ type Location = string; /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ type ETag = string; /** COS API 使用的时间字符串,为 ISO8601 格式,例如2019-05-24T10:56:40Z */ type IsoDateTime = string; /** 请求里的 Url Query 参数 */ type Query = Record; /** 请求里的 Header 参数 */ type Headers = Record; /** 请求里的 URL 中对象存储 API 接口名,如 acl、tagging 等 */ type Action = string; /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中 */ type Delimiter = '/' | string; /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */ type EncodingType = 'url' | string; /** 上传的文件内容 */ type UploadBody = Buffer | String | Stream; /** 对象存储类型。枚举值 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 */ type StorageClass = | 'STANDARD' | 'STANDARD_IA' | 'ARCHIVE' | 'DEEP_ARCHIVE' | 'INTELLIGENT_TIERING' | 'MAZ_STANDARD' | 'MAZ_STANDARD_IA' | 'MAZ_INTELLIGENT_TIERING'; /** 请求方法 */ type Method = 'GET' | 'DELETE' | 'POST' | 'PUT' | 'OPTIONS' | 'get' | 'delete' | 'post' | 'put' | 'options'; /** 权限信息,枚举值:READ | WRITE | READ_ACP | WRITE_ACP | FULL_CONTROL 腾讯云对象存储 COS 在资源 ACL 上支持的操作实际上是一系列的操作集合,对于存储桶和对象 ACL 来说分别代表不同的含义。 */ type Permission = 'READ' | 'WRITE' | 'READ_ACP' | 'WRITE_ACP' | 'FULL_CONTROL'; /** 存储桶的预设 ACL @see https://cloud.tencent.com/document/product/436/30752#.E9.A2.84.E8.AE.BE.E7.9A.84-acl */ type BucketACL = 'private' | 'public-read' | 'public-read-write' | 'authenticated-read'; /** 对象的预设 ACL @see https://cloud.tencent.com/document/product/436/30752#.E9.A2.84.E8.AE.BE.E7.9A.84-acl */ type ObjectACL = | 'default' | 'private' | 'public-read' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control'; /** 二进制值的字符串,'true' | 'false' */ type BooleanString = 'true' | 'false'; /** 所有者的信息 */ type Owner = { /** 存储桶持有者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 */ ID: string; }; /** 所有者的信息 */ type GroupOwner = { /** 预设用户组,格式为 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 概述} */ URI: string; }; /** 上传发起者的信息 */ type Initiator = Owner; /** 单个授权信息 */ type Grant = string; /** 被授权者信息与权限信息 */ interface Grants { /** 所有者的信息 */ Grantee: Owner | GroupOwner; /** 权限信息,枚举值:READ | WRITE | READ_ACP | WRITE_ACP | FULL_CONTROL 腾讯云对象存储 COS 在资源 ACL 上支持的操作实际上是一系列的操作集合,对于存储桶和对象 ACL 来说分别代表不同的含义。 */ Permission: Permission; } /** 存储桶/对象标签信息 */ interface Tag { /** 标签的 Key,长度不超过128字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 */ Key: Key; /** 标签的 Value,长度不超过256字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 */ Value: string; } /** 用来说明本次分块上传中每个块的信息 */ interface Part { /** 标识本次分块上传的编号,范围在1 - 10000 */ PartNumber: PartNumber; /** 使用 Upload Part 请求上传分块成功后返回的 ETag 响应头部的值 */ ETag: ETag; } /** 当前需要用凭证的请求,需要的最小权限 */ type Scope = { /** 需要的权限 */ action: string; /** 操作的存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */ bucket: Bucket; /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */ region: Region; /** 前缀匹配,用来规定返回的文件前缀地址,支持 * 结尾 */ prefix: Prefix; }[]; /** onProgress 回调的进度信息 */ interface ProgressInfo { /** 已上传/下载的字节数,单位 B(字节) */ loaded: number; /** 要上传/下载的文件的大小,单位 B(字节) */ total: number; /** 速度,单位 B/s */ speed: number; /** 进度百分比,范围是 0-1,保留两位小数 */ percent: number; } /** 上传/下载的进度回调方法 */ type onProgress = (params: ProgressInfo) => any; // 实例参数 interface COSOptions { /** 固定密钥的 SecretId,可从{@link https://console.cloud.tencent.com/cam/capi|API密钥管理}获取 */ SecretId?: string; /** 固定密钥的 SecretKey,可从{@link https://console.cloud.tencent.com/cam/capi|API密钥管理}获取 */ SecretKey?: string; /** 如果传入 SecretId、SecretKey 是临时密钥,需要再传入一个临时密钥的 sessionToken */ SecurityToken?: string; /** 同 SecurityToken,推荐用 SecurityToken */ XCosSecurityToken?: string; /** 分块上传及分块复制时,出错重试次数,默认值3(加第一次,请求共4次) */ ChunkRetryTimes?: number; /** 同一个实例下上传的文件并发数,默认值3 */ FileParallelLimit?: number; /** 同一个上传文件的分块并发数,默认值3 */ ChunkParallelLimit?: number; /** 分块上传时,每片的字节数大小,默认值1048576(1MB) */ ChunkSize?: number; /** 使用 uploadFiles 批量上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */ SliceSize?: number; /** 进行分块复制操作中复制分块上传的并发数,默认值20 */ CopyChunkParallelLimit?: number; /** 使用 sliceCopyFile 分块复制文件时,每片的大小字节数,默认值10485760(10MB) */ CopyChunkSize?: number; /** 使用 sliceCopyFile 分块复制文件时,文件大小大于该数值将使用分块复制 ,否则将调用简单复制,默认值10485760(10MB) */ CopySliceSize?: number; /** 最大分片数,默认 1000,最大 10000,分片上传超大文件时,会根据文件大小和该最大分片数计算合适的的分片大小 */ MaxPartNumber?: number; /** 上传进度的回调方法 onProgress 的回调频率,单位 ms ,默认值1000 */ ProgressInterval?: number; /** 上传队列最长大小,超出的任务如果状态不是 waiting、checking、uploading 会被清理,默认10000 */ UploadQueueSize?: number; /** 调用操作存储桶和对象的 API 时自定义请求域名。可以使用模板,如"{Bucket}.cos.{Region}.myqcloud.com",即在调用 API 时会使用参数中传入的 Bucket 和 Region 进行替换。 */ Domain?: string; /** getService方法可以使用的自定义域名 */ ServiceDomain?: string; /** 强制使用后缀式模式发请求。后缀式模式中 Bucket 会放在域名后的 pathname 里,并且 Bucket 会加入签名 pathname 计算,默认 false */ Protocol?: string; /** 设置代理,格式如 http://127.0.0.1:8888 */ Proxy?: string; /** 透传给request */ Tunnel?: boolean; /** 开启兼容模式,默认 false 不开启,兼容模式下不校验 Region 是否格式有误,在用于私有化 COS 时使用 */ CompatibilityMode?: boolean; /** 强制使用后缀式模式发请求。后缀式模式中 Bucket 会放在域名后的 pathname 里,并且 Bucket 会加入签名 pathname 计算,默认 false */ ForcePathStyle?: boolean; /** 是否原样保留 Key 字段的 / 前缀,默认 false 不保留,这时如果 Key 是 / 开头,强制去掉第一个 / */ UseRawKey?: boolean; /** 请求超时时间,单位 ms(毫秒),透传给 request 或 ajax 或小程序请求库 */ Timeout?: number; /** 客户端时间是否不准确,默认 false,在第一次请求 COS API 返回时会判断是否偏差大于 30s,如果是会把该值设置为 true,开发者也可以预先判断并设置该参数 */ CorrectClockSkew?: boolean; /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数,在第一次请求 COS API 返回时会判断是否偏差大于 30s,如果是会把该值设置为 true,开发者也可以预先判断并设置该参数。 */ SystemClockOffset?: number; /** 上传文件时校验 Content-MD5,默认 false。如果开启,上传文件时会对文件内容计算 MD5,大文件耗时较长 */ UploadCheckContentMd5?: boolean; /** 上传文件时计算文件内容 md5 并设置为文件 x-cos-meta-md5 元数据 Header 字段 */ UploadAddMetaMd5?: boolean; /** 分片上传缓存的 UploadId 列表大小限制,nodejs-sdk 默认 500 个,js-sdk、小程序 SDK 默认 50 */ UploadIdCacheLimit?: number; /** 分片上传缓存的 UploadId 列表时,保存的本地缓存文件目录路径,nodejs-sdk 默认 500 个,js-sdk 默认 50 */ ConfCwd?: string; /** 301/302 回源跟随配置。 */ FollowRedirect?: boolean; /** 是否使用全球加速域名。开启该配置后仅以下接口支持操作:putObject、getObject、headObject、optionsObject、multipartInit、multipartListPart、multipartUpload、multipartAbort、multipartComplete、multipartList、sliceUploadFile、uploadFiles */ UseAccelerate?: boolean; /** 是否开启长链接,默认开启 */ KeepAlive?: boolean; Ip?: string; /** 默认将host加入签名计算,关闭后可能导致越权风险,建议保持为true */ ForceSignHost?: boolean; /** 获取签名的回调方法,如果没有 SecretId、SecretKey 时,必选 */ getAuthorization?: ( options: GetAuthorizationOptions, /** callback 获取完签名或临时密钥后,回传给 SDK 的方法 */ callback: ( /** params 回传给 SDK 的签名或获取临时密钥 */ params: GetAuthorizationCallbackParams, ) => void, ) => void; /** 支持动态Credentials */ Credentials?: { secretId?: string; secretKey?: string; }; } type StringOrBuffer = Buffer | String; interface Util { md5: (str: StringOrBuffer, encoding?: string) => string; xml2json: (bodyStr: string) => any; json2xml: (json: any) => string; encodeBase64: (str: string, safe?: boolean) => string; } interface StaticGetAuthorizationOptions { /** 计算签名用的密钥 SecretId,必选 */ SecretId: string; /** 计算签名用的密钥 SecretKey,必选 */ SecretKey: string; /** 请求的存储桶,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */ Bucket?: Bucket; /** 请求的地域,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */ Region?: Region; /** 请求方法,可选 */ Method?: Method; /** 请求路径,最前面带 /,例如 /images/1.jpg,可选 */ Pathname?: Pathname; /** 请求的对象键,最前面不带 /,例如 images/1.jpg,可选 */ Key?: Key; /** 要参与签名计算的 Url Query 参数,可选 */ Query?: Query; /** 要参与签名计算的 Header 参数,可选 */ Headers?: Headers; /** 签名几秒后失效,默认为900秒,如果传入了 KeyTime,以 KeyTime 为准,可选 */ Expires?: number; /** 签名有效时间戳区间,如果传入了该参数,会赋值给在签名里的 q-key-time 和 q-sign-time 字段,格式如:1611915436;1611916336 */ KeyTime?: string; /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数。 */ SystemClockOffset?: number; } /** 计算签名或获取临时密钥可能需要的参数列表 */ interface GetAuthorizationOptions { /** 存储桶的名称,格式为,例如examplebucket-1250000000 */ Bucket: Bucket; /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */ Region: Region; /** 请求方法 */ Method: Method; /** 请求路径,最前面带 /,例如 /images/1.jpg,Pathname 和 Key 二选一 */ Pathname: Pathname; /** 请求的对象键,最前面不带 /,例如 images/1.jpg,如果是存储桶接口,传入空字符串,Key 和 Pathname 二选一,推荐使用 Pathname 参数 */ Key: Key; /** 请求里的 Url Query 参数,可选 */ Query: Query; /** 请求里的 Header 参数,可选 */ Headers: Headers; /** 当前需要用凭证的请求,需要的最小权限 */ Scope: Scope; /** 校正时间的偏移值,单位 ms(毫秒),计算签名时会用设备当前时间戳加上该偏移值,在设备时间有误时可用于校正签名用的时间参数。 */ SystemClockOffset: number; } /** 请求凭证,包含临时密钥信息 */ interface Credentials { /** 临时密钥 tmpSecretId */ TmpSecretId: string; /** 临时密钥 tmpSecretKey */ TmpSecretKey: string; /** 临时密钥 sessonToken */ SecurityToken?: string; /** 同 SecurityToken,推荐用 SecurityToken */ XCosSecurityToken?: string; /** 获取临时密钥时,服务端的时间,该时间用于计算签名,可以避免设备时间有偏差导致请求错误 */ StartTime: number; /** 获取临时密钥的过期时间戳 */ ExpiredTime: number; /** 该临时密钥是否仅用于相同 Scope 权限范围的请求 */ ScopeLimit?: boolean; /** 签名 */ Authorization?: string; } /** 用于发请求的签名字符串,会放在请求 Header 里的 Authorization 字段 */ type Authorization = string; /** SDK 用于请求的凭证,可以是签名,也可以是临时密钥信息 */ type GetAuthorizationCallbackParams = Authorization | Credentials; /** 一般接口的返回结果 */ interface GeneralResult { /** 请求返回的 HTTP 状态码 */ statusCode?: number; /** 请求返回的 header 字段 */ headers?: Headers; /** 请求的唯一标识 */ RequestId?: string; } /** SDK 的错误格式,其中服务端返回错误码可查看 @see https://cloud.tencent.com/document/product/436/7730 */ interface CosSdkError extends GeneralResult { /** 错误码 */ code: string; /** 错误信息 */ message: string; /** 兼容老的错误信息字段,不建议使用,可能是参数错误、客户端出错、或服务端返回的错误 */ error: string | Error | { Code: string; Message: string }; } /** 回调的错误格式,其中服务端返回错误码可查看 @see https://cloud.tencent.com/document/product/436/7730 */ type CosError = null | CosSdkError; /** 存储桶操作接口的公共参数 */ interface BucketParams { /** 存储桶的名称,格式为,例如examplebucket-1250000000 */ Bucket: Bucket; /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */ Region: Region; /** 请求时带上的 Header 字段 */ Headers?: Headers; } /** 对象操作接口的公共参数 */ interface ObjectParams { /** 存储桶的名称,格式为,例如examplebucket-1250000000 */ Bucket: Bucket; /** 存储桶所在地域,如果有传入只返回该地域的存储桶列表 */ Region: Region; /** 请求的对象键,最前面不带 / */ Key: Key; /** 发请求时带上的 Header 字段 */ Headers?: Headers; } // 所有接口的入参和出参 // getService interface GetServiceParams { /** 存储桶所在地域,如果传入只返回该地域的存储桶 */ Region?: Region; /** 发请求时带上的 Header 字段 */ Headers?: Headers; } /** getService 接口返回值 */ interface GetServiceResult extends GeneralResult { Buckets: { /** 存储桶的名称,格式为,例如examplebucket-1250000000 */ Name: Bucket; /** 存储桶所在地域 */ Location: Region; /** 存储桶创建时间 */ CreationDate: IsoDateTime; }[]; /** 所有者的信息 */ Owner: Owner; } // putBucket /** putBucket 接口参数 */ interface PutBucketParams extends BucketParams { /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: BucketACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWrite?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 要创建存储桶的AZ类型,创建多AZ存储桶,传入 'MAZ' */ BucketAZConfig?: 'MAZ' | string; /** 如果创建索引多活存储桶,传入 'OFS' */ BucketArchConfig?: 'OFS' | string; } /** putBucket 接口返回值 */ interface PutBucketResult extends GeneralResult { /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/ */ Location: Location; } // headBucket /** headBucket 接口参数 */ interface HeadBucketParams extends BucketParams {} /** headBucket 接口返回值 */ interface HeadBucketResult extends GeneralResult {} // getBucket /** getBucket 接口参数 */ interface GetBucketParams extends BucketParams { /** 前缀匹配,用来规定返回的文件前缀地址,可选 */ Prefix?: Prefix; /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中,可选 */ Delimiter?: Delimiter; /** 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,可选 */ Marker?: Key; /** 单次返回最大的条目数量,默认值为1000,最大为1000,注意:该参数会限制每一次 List 操作返回的最大条目数,COS 在每次 List 操作中将返回不超过 max-keys 所设定数值的条目(即 CommonPrefixes 和 Contents 的总和),如果单次响应中未列出所有对象,COS 会返回 NextMarker 节点,其值作为您下次 List 请求的 marker 参数,以便您列出后续对象,可选 */ MaxKeys?: number; /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */ EncodingType?: EncodingType; } /** 对象信息 */ interface CosObject { /** 对象键 */ Key: Key; /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */ LastModified: IsoDateTime; /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如“8e0b617ca298a564c3331da28dcb50df”,此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 对象大小,单位为 Byte */ Size: string; /** 对象存储类型。枚举值 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 */ StorageClass: StorageClass; /** 当对象存储类型为智能分层存储时,指示对象当前所处的存储层,枚举值:FREQUENT(标准层),INFREQUENT(低频层)。仅当 StorageClass 为 INTELLIGENT_TIERING(智能分层)时才会返回该节点 */ StorageTier?: string; /** 对象持有者信息 */ Owner: Owner; } /** getBucket 接口返回值 */ interface GetBucketResult extends GeneralResult { /** 对象条目 */ Contents: CosObject[]; /** 从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分,定义为 Common Prefix。仅当请求中指定了 delimiter 参数才有可能返回该节点 */ CommonPrefixes: { /** 前缀匹配,用来规定返回的文件前缀地址 */ Prefix: Prefix; }[]; /** 响应条目是否被截断,布尔值,例如 true 或 false,可用于判断是否还需要继续列出文件 */ IsTruncated: BooleanString; /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */ NextMarker?: string; } // listObjectVersions /** listObjectVersions 接口参数 */ interface ListObjectVersionsParams extends BucketParams { /** 前缀匹配,用来规定返回的文件前缀地址,可选 */ Prefix?: Prefix; /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中,可选 */ Delimiter?: Delimiter; /** 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,可选 */ Marker?: string; /** 单次返回最大的条目数量,默认值为1000,最大为1000,注意:该参数会限制每一次 List 操作返回的最大条目数,COS 在每次 List 操作中将返回不超过 max-keys 所设定数值的条目(即 CommonPrefixes 和 Contents 的总和),如果单次响应中未列出所有对象,COS 会返回 NextMarker 节点,其值作为您下次 List 请求的 marker 参数,以便您列出后续对象,可选 */ MaxKeys?: string; /** 起始版本 ID 标记,从该标记之后(不含)返回对象版本条目,对应请求中的 url 参数 version-id-marker */ VersionIdMarker?: string; /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */ EncodingType?: EncodingType; } /** 对象删除标记条目 */ interface DeleteMarker { /** 对象键 */ Key: Key; /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */ VersionId: VersionId; /** 当前版本是否为该对象的最新版本 */ IsLatest: string; /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */ LastModified: IsoDateTime; Owner: Owner; } interface ObjectVersion { /** 对象键 */ Key: Key; /** 对象的删除标记的版本 ID */ VersionId: VersionId; /** 当前版本是否为该对象的最新版本 */ IsLatest: BooleanString; /** 当前版本的最后修改时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */ LastModified: IsoDateTime; /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 对象大小,单位为 Byte */ Size: string; /** 对象大小,单位为 Byte */ Owner: Owner; /** 对象存储类型。枚举值 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 */ StorageClass: StorageClass; /** 当对象存储类型为智能分层存储时,指示对象当前所处的存储层,枚举值:FREQUENT(标准层),INFREQUENT(低频层)。仅当 StorageClass 为 INTELLIGENT_TIERING(智能分层)时才会返回该节点 */ StorageTier?: string; } /** listObjectVersions 接口返回值 */ interface ListObjectVersionsResult extends GeneralResult { /** 从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分,定义为 Common Prefix。仅当请求中指定了 delimiter 参数才有可能返回该节点 */ CommonPrefixes: { /** 前缀匹配,用来规定返回的文件前缀地址 */ Prefix: Prefix; }[]; /** 对象版本条目 */ Versions: ObjectVersion[]; /** 对象删除标记条目 */ DeleteMarkers: DeleteMarker[]; /** 响应条目是否被截断,布尔值,例如 true 或 false,可用于判断是否还需要继续列出文件 */ IsTruncated: BooleanString; /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */ NextMarker?: string; /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象的版本 ID,当需要继续请求后续条目时,将该节点的值作为下一次请求的 version-id-marker 参数传入。该节点的值可能为空,此时下一次请求的 version-id-marker 参数也需要指定为空。 */ NextVersionIdMarker?: string; } // deleteBucket /** deleteBucket 接口参数 */ interface DeleteBucketParams extends BucketParams {} /** deleteBucket 接口返回值 */ interface DeleteBucketResult extends GeneralResult {} // putBucketAcl /** putBucketAcl 接口参数 */ interface PutBucketAclParams extends BucketParams { /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: BucketACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWrite?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 放在 XML Body 的授权参数 */ AccessControlPolicy?: { /** 所有者的信息 */ Owner: Owner; /** 被授权者信息与权限信息 */ Grants: Grants[]; }; } /** putBucketAcl 接口返回值 */ interface PutBucketAclResult extends GeneralResult {} // getBucketAcl /** getBucketAcl 接口参数 */ interface GetBucketAclParams extends BucketParams {} /** getBucketAcl 接口返回值 */ interface GetBucketAclResult extends GeneralResult { /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write */ ACL: BucketACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantRead: Grant; /** 赋予被授权者写取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantWrite: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantReadAcp: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantWriteAcp: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantFullControl: Grant; /** 存储桶持有者信息 */ Owner: Owner; /** 被授权者信息与权限信息 */ Grants: Grants[]; } // putBucketCors type CORSRule = { /** 允许的访问来源,单条 CORSRule 可以配置多个 AllowedOrigin。 配置支持 *,表示全部域名都允许,但不推荐。 支持单个具体域名,例如 http://www.example.com。 支持 * 通配符,通配符可出现在任何位置,包括协议、域名和端口,可匹配0个或多个字符,但是只能有一个 *。请谨慎使用通配符,因为可能意外匹配到非预期的来源 注意不要遗漏协议名 http 或 https,若端口不是默认的80(http)或443(https),还需要带上端口,例如 https://example.com:8443。 */ AllowedOrigin: string[]; /** 允许的 HTTP 操作方法(Method),对应 CORS 请求响应中的 Access-Control-Allow-Methods 头部,单条 CORSRule 可以配置多个 AllowedMethod。枚举值:PUT、GET、POST、DELETE、HEAD。 */ AllowedMethod: string[]; /** 在发送预检(OPTIONS)请求时,浏览器会告知服务端接下来的正式请求将使用的自定义 HTTP 请求头部,此配置用于指定允许浏览器发送 CORS 请求时携带的自定义 HTTP 请求头部,不区分英文大小写,单条 CORSRule 可以配置多个 AllowedHeader。 可以配置*,代表允许所有头部,为了避免遗漏,推荐配置为*。 如果不配置为*,那么在预检(OPTIONS)请求中 Access-Control-Request-Headers 头部出现的每个 Header,都必须在 AllowedHeader 中有对应项。 */ AllowedHeader?: string[]; /** 允许浏览器获取的 CORS 请求响应中的头部,不区分大小写,单条 CORSRule 可以配置多个 ExposeHeader。 默认情况下浏览器只能访问简单响应头部:Cache-Control、Content-Type、Expires、Last-Modified,如果需要访问其他响应头部,需要添加 ExposeHeader 配置。 不支持配置为 *,必须明确配置具体的 Header。 根据浏览器的实际需求确定,默认推荐填写 ETag,可参考各 API 文档的响应头部分及 公共响应头部 文档。@see https://cloud.tencent.com/document/product/436/7729 */ ExposeHeader?: string[]; /** 跨域资源共享配置的有效时间,单位为秒,在有效时间内,浏览器无须为同一请求再次发起预检(OPTIONS)请求,对应 CORS 请求响应中的 Access-Control-Max-Age 头部,单条 CORSRule 只能配置一个 MaxAgeSeconds。 */ MaxAgeSeconds?: number; }; /** putBucketCors 接口参数 */ interface PutBucketCorsParams extends BucketParams { /** 存储桶跨域资源共享(CORS)访问控制规则 */ CORSRules: CORSRule[]; /** 是否允许同一个 url 有多份缓存,如果设置为 true 浏览器在 img 标签加载和 ajax 加载同一个对象 url 将会使用不同缓存 */ ResponseVary?: BooleanString; } /** putBucketCors 接口返回值 */ interface PutBucketCorsResult extends GeneralResult {} // getBucketCors /** getBucketCors 接口参数 */ interface GetBucketCorsParams extends BucketParams {} /** getBucketCors 接口返回值 */ interface GetBucketCorsResult extends GeneralResult { /** 存储桶跨域资源共享(CORS)访问控制规则 */ CORSRules: Record; /** 是否允许同一个 url 有多份缓存,如果设置为 true 浏览器在 img 标签加载和 ajax 加载同一个对象 url 将会使用不同缓存 */ ResponseVary?: BooleanString; } // deleteBucketCors /** deleteBucketCors 接口参数 */ interface DeleteBucketCorsParams extends BucketParams {} /** deleteBucketCors 接口返回值 */ interface DeleteBucketCorsResult extends GeneralResult {} // getBucketLocation interface GetBucketLocationResult { /** 存储桶所在地域 */ LocationConstraint: Region; } /** getBucketLocation 接口参数 */ interface GetBucketLocationParams extends BucketParams {} // putBucketPolicy /** putBucketPolicy 接口参数 */ interface PutBucketPolicyParams extends BucketParams { /** 存储桶的权限策略 @see https://cloud.tencent.com/document/product/436/31923 */ Policy: Record; } /** putBucketPolicy 接口返回值 */ interface PutBucketPolicyResult extends GeneralResult {} // getBucketPolicy /** getBucketPolicy 接口参数 */ interface GetBucketPolicyParams extends BucketParams {} /** getBucketPolicy 接口返回值 */ interface GetBucketPolicyResult extends GeneralResult { /** 存储桶的权限策略 @see https://cloud.tencent.com/document/product/436/31923 */ Policy: Record; } // deleteBucketPolicy /** deleteBucketPolicy 接口参数 */ interface DeleteBucketPolicyParams extends BucketParams {} /** deleteBucketPolicy 接口返回值 */ interface DeleteBucketPolicyResult extends GeneralResult {} // putBucketTagging /** putBucketTagging 接口参数 */ interface PutBucketTaggingParams extends BucketParams { /** 标签集合,最多支持10个标签 */ Tags: Tag[]; } /** putBucketTagging 接口返回值 */ interface PutBucketTaggingResult extends GeneralResult {} // getBucketTagging /** getBucketTagging 接口参数 */ interface GetBucketTaggingParams extends BucketParams {} /** getBucketTagging 接口返回值 */ interface GetBucketTaggingResult extends GeneralResult { /** 标签集合,最多支持10个标签 */ Tags: Tag[]; } // deleteBucketTagging /** deleteBucketTagging 接口参数 */ interface DeleteBucketTaggingParams extends BucketParams {} /** deleteBucketTagging 接口返回值 */ interface DeleteBucketTaggingResult extends GeneralResult {} // putBucketLifecycle /** 生命周期配置规则 */ type LifecycleRule = { /** 用于唯一地标识规则,长度不能超过255个字符,可选 */ ID: string; /** 指明规则是否启用,枚举值:Enabled,Disabled,必选 */ Status: 'Enabled' | 'Disabled'; /** Filter 用于描述规则影响的 Object 集合,必选 */ Filter?: Record; /** 规则转换属性,对象何时转换为 Standard_IA 或 Archive 等存储类型 */ Transition?: Record; /** 规则过期属性 */ Expiration?: Record; /** 设置允许分片上传保持运行的最长时间 */ AbortIncompleteMultipartUpload?: Record; /** 指明非当前版本对象何时过期 */ NoncurrentVersionExpiration?: Record; /** 指明非当前版本对象何时转换为 STANDARD_IA 或 ARCHIVE 等存储类型 */ NoncurrentVersionTransition?: Record; }; /** putBucketLifecycle 接口参数 */ interface PutBucketLifecycleParams extends BucketParams { /** 生命周期配置规则列表 */ Rules: LifecycleRule[]; } /** putBucketLifecycle 接口返回值 */ interface PutBucketLifecycleResult extends GeneralResult {} // getBucketLifecycle /** getBucketLifecycle 接口参数 */ interface GetBucketLifecycleParams extends BucketParams {} /** getBucketLifecycle 接口返回值 */ interface GetBucketLifecycleResult extends GeneralResult { /** 生命周期配置规则列表 */ Rules: LifecycleRule[]; } // deleteBucketLifecycle /** deleteBucketLifecycle 接口参数 */ interface DeleteBucketLifecycleParams extends BucketParams {} /** deleteBucketLifecycle 接口返回值 */ interface DeleteBucketLifecycleResult extends GeneralResult {} // putBucketVersioning /** 存储桶版本控制开关信息 */ interface VersioningConfiguration { /** 说明版本是否开启,枚举值:Suspended、Enabled */ Status: 'Enabled' | 'Suspended'; } /** putBucketVersioning 接口参数 */ interface PutBucketVersioningParams extends BucketParams { /** 存储桶版本控制开关信息 */ VersioningConfiguration: VersioningConfiguration; } /** putBucketVersioning 接口返回值 */ interface PutBucketVersioningResult extends GeneralResult {} // getBucketVersioning /** getBucketVersioning 接口参数 */ interface GetBucketVersioningParams extends BucketParams {} /** getBucketVersioning 接口返回值 */ interface GetBucketVersioningResult extends GeneralResult { /** 存储桶版本控制开关信息 */ VersioningConfiguration: VersioningConfiguration; } // putBucketReplication interface ReplicationRule { /** 用来标注具体 Rule 的名称 */ ID?: string; /** 标识 Rule 是否生效,枚举值:Enabled, Disabled */ Status: 'Enabled' | 'Disabled'; /** 前缀匹配,用来规定返回的文件前缀地址 */ Prefix: Prefix; /** 目标存储桶信息 */ Destination: { /** 资源标识符:qcs::cos::: */ Bucket: string; /** 存储类型,枚举值:STANDARD,INTELLIGENT_TIERING,STANDARD_IA 等。默认值:原存储类型 */ StorageClass?: StorageClass; }; } /** 说明所有复制配置信息 */ interface ReplicationConfiguration { /** 发起者身份标示:qcs::cam::uin/<OwnerUin>:uin/<SubUin> */ Role: string; /** 具体配置信息,最多支持1000个,所有策略只能指向一个目标存储桶 */ Rules: ReplicationRule[]; } /** putBucketReplication 接口参数 */ interface PutBucketReplicationParams extends BucketParams { /** 说明所有复制配置信息 */ ReplicationConfiguration: ReplicationConfiguration; } /** putBucketReplication 接口返回值 */ interface PutBucketReplicationResult extends GeneralResult {} // getBucketReplication /** getBucketReplication 接口参数 */ interface GetBucketReplicationParams extends BucketParams {} /** getBucketReplication 接口返回值 */ interface GetBucketReplicationResult extends GeneralResult { /** 说明所有复制配置信息 */ ReplicationConfiguration: ReplicationConfiguration; } // deleteBucketReplication /** deleteBucketReplication 接口参数 */ interface DeleteBucketReplicationParams extends BucketParams {} /** deleteBucketReplication 接口返回值 */ interface DeleteBucketReplicationResult extends GeneralResult {} // putBucketWebsite /** 存储桶配置静态网站配置信息 */ interface WebsiteConfiguration { /** 索引文档配置 */ IndexDocument: { /** 指定索引文档的对象键后缀。例如指定为index.html,那么当访问到存储桶的根目录时,会自动返回 index.html 的内容,或者当访问到article/目录时,会自动返回 article/index.html的内容 */ Suffix: string; }; /** 重定向所有请求配置 */ RedirectAllRequestsTo?: { /** 指定重定向所有请求的目标协议,只能设置为 https */ Protocol: 'https' | string; }; /** 用于配置是否忽略扩展名 */ AutoAddressing?: { /** 用于配置是否忽略 HTML 拓展名,可选值为 Enabled 或 Disabled,默认为 Disabled */ Status: 'Disabled' | 'Enabled'; }; /** 错误文档配置 */ ErrorDocument?: { /** 指定通用错误文档的对象键,当发生错误且未命中重定向规则中的错误码重定向时,将返回该对象键的内容 */ Key: Key; /** 用于配置命中错误文档的 HTTP 状态码,可选值为 Enabled 或 Disabled,默认为 Enabled */ OriginalHttpStatus?: 'Enabled' | 'Disabled'; }; /** 重定向规则配置,最多设置100条 RoutingRule */ RoutingRules?: { /** 重定向规则的条件配置 */ Condition: { /** 指定重定向规则的错误码匹配条件,只支持配置4XX返回码,例如403或404,HttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一 */ HttpErrorCodeReturnedEquals?: string | number; /** 指定重定向规则的对象键前缀匹配条件,HttpErrorCodeReturnedEquals 与 KeyPrefixEquals 必选其一 */ KeyPrefixEquals?: 'Enabled' | 'Disabled'; }; /** 重定向规则的具体重定向目标配置 */ Redirect: { /** 指定重定向规则的目标协议,只能设置为 https */ Protocol?: 'https' | string; /** 指定重定向规则的具体重定向目标的对象键,替换方式为替换整个原始请求的对象键,ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一 */ ReplaceKeyWith?: string; /** 指定重定向规则的具体重定向目标的对象键,替换方式为替换原始请求中所匹配到的前缀部分,仅可在 Condition 为 KeyPrefixEquals 时设置,ReplaceKeyWith 与 ReplaceKeyPrefixWith 必选其一 */ ReplaceKeyPrefixWith?: string; }; }[]; } /** putBucketWebsite 接口参数 */ interface PutBucketWebsiteParams extends BucketParams { /** 存储桶配置静态网站配置信息 */ WebsiteConfiguration: WebsiteConfiguration; } /** putBucketWebsite 接口返回值 */ interface PutBucketWebsiteResult extends GeneralResult {} // getBucketWebsite /** getBucketWebsite 接口参数 */ interface GetBucketWebsiteParams extends BucketParams {} /** getBucketWebsite 接口返回值 */ interface GetBucketWebsiteResult extends GeneralResult { /** 存储桶配置静态网站配置信息 */ WebsiteConfiguration: WebsiteConfiguration; } // deleteBucketWebsite /** deleteBucketWebsite 接口参数 */ interface DeleteBucketWebsiteParams extends BucketParams {} /** deleteBucketWebsite 接口返回值 */ interface DeleteBucketWebsiteResult extends GeneralResult {} // putBucketReferer /** 防盗链配置信息 */ interface RefererConfiguration { /** 是否开启防盗链,枚举值:Enabled、Disabled */ Status: 'Enabled' | 'Disabled'; /** 防盗链类型,枚举值:Black-List、White-List */ RefererType: 'Black-List' | 'White-List'; /** 生效域名列表, 支持多个域名且为前缀匹配, 支持带端口的域名和 IP, 支持通配符*,做二级域名或多级域名的通配 */ DomainList: { /** 生效域名,例如www.qq.com/example,192.168.1.2:8080, *.qq.com */ Domains: string[]; }; /** 是否允许空 Referer 访问,枚举值:Allow、Deny,默认值为 Deny */ EmptyReferConfiguration?: 'Allow' | 'Deny'; } /** putBucketReferer 接口参数 */ interface PutBucketRefererParams extends BucketParams { /** 防盗链配置信息 */ RefererConfiguration: RefererConfiguration; } /** putBucketReferer 接口返回值 */ interface PutBucketRefererResult extends GeneralResult {} // getBucketReferer /** getBucketReferer 接口参数 */ interface GetBucketRefererParams extends BucketParams {} /** getBucketReferer 接口返回值 */ interface GetBucketRefererResult extends GeneralResult { /** 防盗链配置信息 */ RefererConfiguration: RefererConfiguration; } // putBucketDomain /** 绑定的域名条目 */ interface DomainRule { /** 是否启用。枚举值:ENABLED:启用,DISABLED:禁用,必选 */ Status: 'DISABLED' | 'ENABLED'; /** 完整域名,必选 */ Name: string; /** 源站类型。枚举值:REST:默认源站,WEBSITE:静态源站源站,ACCELERATE:全球加速源站,必选 */ Type: 'REST' | 'WEBSITE' | 'ACCELERATE'; /** 如果指定域名已经作为其他存储桶的自定义域名,那么可以指定该元素强制将该域名作为当前存储桶的自定义域名。当前只支持 CNAME,代表您需要先将该域名的 CNAME 指向当前存储桶的源站域名(根据 Type 元素的不同对应为默认源站、静态网站源站或全球加速源站)后才能通过该接口设置自定义域名。可选 */ ForcedReplacement?: string; } /** putBucketDomain 接口参数 */ interface PutBucketDomainParams extends BucketParams { /** 绑定的域名条目 */ DomainRule: DomainRule[]; } /** putBucketDomain 接口返回值 */ interface PutBucketDomainResult extends GeneralResult {} // getBucketDomain /** getBucketDomain 接口参数 */ interface GetBucketDomainParams extends BucketParams {} /** getBucketDomain 接口返回值 */ interface GetBucketDomainResult extends GeneralResult { /** 绑定的域名条目 */ DomainRule: DomainRule[]; } // deleteBucketDomain /** deleteBucketDomain 接口参数 */ interface DeleteBucketDomainParams extends BucketParams {} /** deleteBucketDomain 接口返回值 */ interface DeleteBucketDomainResult extends GeneralResult {} // putBucketOrigin /** Origin 回源规则配置 */ interface OriginRule { /** 通过优先级区分规则执行先后,必选 */ RulePriority: 1; /** 回源类型,支持同步回源(Mirror)和异步回源(Proxy)两种模式。 枚举值:Mirror、Proxy。必选 */ OriginType: 'Mirror' | 'Proxy'; /** 回源配置,配置用户使用的 HTTP 传输协议等信息。必选 */ OriginCondition: { /** 触发回源的 HTTP 状态码,默认为404。必选 */ HTTPStatusCode: number; /** 触发回源的文件前缀,默认为空,任意文件均可触发。可选 */ Prefix: Prefix; }; /** 回源地址相关信息,必选 */ OriginParameter: { /** 回源使用的协议,枚举值为 HTTP(使用 HTTP 协议),HTTPS(使用 HTTPS 协议)、FOLLOW(跟随用户使用的协议),默认值为 FOLLOW。必选 */ Protocol: 'HTTP' | 'HTTPS' | 'FOLLOW'; /** Proxy 模式下是否需要透传 HTTP 请求串,枚举值:true、false,默认为 true。可选 */ FollowQueryString?: BooleanString; /** Proxy 模式下是否需要 Http 头部传输配置。可选 */ HttpHeader?: { /** Proxy 模式下是否传输请求头部,枚举值:true、false,默认为 false。可选 */ FollowHttpHeader?: BooleanString; /** 设置 Proxy 模式传输的请求头部。可选 */ NewHttpHeader?: { /** 回源到源站时添加新的自定义头部,默认为空。可选 */ Header?: { /** 用户设置的头部名称,默认为空。形式如 x-cos、oss、amz-ContentType、CacheControl、ContentDisposition、ContentEncoding、HttpExpiresDate、UserMetaData。可选 */ Key?: string; /** 用户设置的头部值,默认为空。可选 */ Value?: string; }[]; }; }; /** Proxy 模式下源站 3XX 响应策略,枚举值:true、false,选择 true 时跟随源站 3xx 重定向请求获取到资源,并将资源保存到 COS 上;选择 false 时透传 3XX 响应,不获取资源),默认为 true。可选 */ FollowRedirection: BooleanString; /** Proxy 模式下的返回码参数,枚举值:301、302,默认为 302。可选 */ HttpRedirectCode: ('301' | '302')[]; }; /** 回源配置,配置用户使用的 HTTP 传输协议等信息。必选 */ OriginInfo: { /** 源站信息。必选 */ HostInfo: { /** 源站域名或者源站 IP。必选 */ HostName: string; }; /** 回源文件信息。必选 */ FileInfo: { /** 回源文件前缀配置信息。可选 */ PrefixConfiguration: { /** 回源文件的文件前缀,默认为空。可选 */ Prefix: Prefix; }; /** 回源文件后缀配置信息。可选 */ SuffixConfiguration: { /** 回源文件的文件后缀,默认为空。可选 */ Suffix: string; }; }; }; } /** putBucketOrigin 接口参数 */ interface PutBucketOriginParams extends BucketParams { /** Origin 回源规则配置 */ OriginRule: OriginRule[]; } /** putBucketOrigin 接口返回值 */ interface PutBucketOriginResult extends GeneralResult {} // getBucketOrigin /** getBucketOrigin 接口参数 */ interface GetBucketOriginParams extends BucketParams {} /** getBucketOrigin 接口返回值 */ interface GetBucketOriginResult extends GeneralResult { /** Origin 回源规则配置 */ OriginRule: OriginRule[]; } // deleteBucketOrigin /** deleteBucketOrigin 接口参数 */ interface DeleteBucketOriginParams extends BucketParams {} /** deleteBucketOrigin 接口返回值 */ interface DeleteBucketOriginResult extends GeneralResult {} // putBucketLogging interface BucketLoggingStatus { /** 存储桶 logging 设置的具体信息,主要是目标存储桶 */ LoggingEnabled?: { /** 存放日志的目标存储桶,可以是同一个存储桶(但不推荐),或同一账户下、同一地域的存储桶 */ TargetBucket: Bucket; /** 日志存放在目标存储桶的指定路径 */ TargetPrefix: Prefix; }; } /** putBucketLogging 接口参数 */ interface PutBucketLoggingParams extends BucketParams { /** 说明日志记录配置的状态,如果无子节点信息则意为关闭日志记录 */ BucketLoggingStatus: BucketLoggingStatus; } /** putBucketLogging 接口返回值 */ interface PutBucketLoggingResult extends GeneralResult {} // getBucketLogging /** getBucketLogging 接口参数 */ interface GetBucketLoggingParams extends BucketParams {} /** getBucketLogging 接口返回值 */ interface GetBucketLoggingResult extends GeneralResult { /** 说明日志记录配置的状态,如果无子节点信息则意为关闭日志记录 */ BucketLoggingStatus: BucketLoggingStatus; } // putBucketInventory /** putBucketInventory 接口参数 */ interface InventoryConfiguration { /** 清单的名称,与请求参数中的 id 对应,可选 */ Id: string; /** 清单是否启用的标识:如果设置为 true,清单功能将生效,如果设置为 false,将不生成任何清单,必选 */ IsEnabled: BooleanString; /** 是否在清单中包含对象版本:如果设置为 All,清单中将会包含所有对象版本,并在清单中增加 VersionId,IsLatest,DeleteMarker 这几个字段,如果设置为 Current,则清单中不包含对象版本信息,必选 */ IncludedObjectVersions: 'All' | 'Current'; /** 筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象,可选 */ Filter?: { /** 筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象,可选 */ Prefix?: Prefix; }; /** 设置清单结果中应包含的分析项目,可选 */ OptionalFields?: string[]; /** 配置清单任务周期,必选 */ Schedule: { /** 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly,必选 */ Frequency: 'Daily' | 'Weekly'; }; /** 描述存放清单结果的信息,必选 */ Destination: { /** 清单结果导出后存放的存储桶信息,必选 */ COSBucketDestination: { /** 清单分析结果的存储桶名,如:qcs::cos:ap-guangzhou::bucket-logging-1250000000,必选 */ Bucket: string; /** 清单分析结果的文件形式,可选项为 CSV 格式,必选 */ Format: 'CSV'; /** 存储桶的所有者 ID,例如100000000001,可选 */ AccountId?: string; /** 清单分析结果的前缀,可选 */ Prefix?: Prefix; /** 为清单结果提供服务端加密的选项,可选 */ Encryption?: { /** COS 托管密钥的加密方式,无需填充,可选 */ SSECOS?: ''; }; }; }; } interface PutBucketInventoryParams extends BucketParams { /** 清单的名称,与请求参数中的 id 对应 */ Id: string; /** 包含清单任务的详细信息 */ InventoryConfiguration: InventoryConfiguration; } /** putBucketInventory 接口返回值 */ interface PutBucketInventoryResult extends GeneralResult {} // getBucketInventory /** getBucketInventory 接口参数 */ interface GetBucketInventoryParams extends BucketParams { /** 清单的名称,与请求参数中的 id 对应 */ Id: string; } /** getBucketInventory 接口返回值 */ interface GetBucketInventoryResult extends GeneralResult { /** 包含清单任务的详细信息 */ InventoryConfiguration: InventoryConfiguration; } // listBucketInventory /** listBucketInventory 接口参数 */ interface ListBucketInventoryParams extends BucketParams {} /** listBucketInventory 接口返回值 */ interface ListBucketInventoryResult extends GeneralResult { /** 包含清单任务的详细信息 */ InventoryConfigurations: Record; /** 当 COS 响应体中 IsTruncated 为 true,且 NextContinuationToken 节点中存在参数值时,您可以将这个参数作为 continuation-token 参数值,以获取下一页的清单任务信息。缺省值:None */ ContinuationToken: string; /** 是否已列出所有清单任务信息的标识。如果已经展示完则为 false,否则为 true */ IsTruncated: BooleanString; /** 下一页清单列表的标识。如果该参数中有值,则可将该值作为 continuation-token 参数并发起 GET 请求以获取下一页清单任务信息 */ NextContinuationToken?: string; } // deleteBucketInventory /** deleteBucketInventory 接口参数 */ interface DeleteBucketInventoryParams extends BucketParams { Id: string; } /** deleteBucketInventory 接口返回值 */ interface DeleteBucketInventoryResult extends GeneralResult {} // putBucketAccelerate /** 全球加速的具体信息 */ interface AccelerateConfiguration { /** 说明全球加速功能是否开启,枚举值:Suspended、Enabled */ Status: 'Enabled' | 'Suspended'; } /** putBucketAccelerate 接口参数 */ interface PutBucketAccelerateParams extends BucketParams { /** 全球加速的具体信息 */ AccelerateConfiguration: AccelerateConfiguration; } /** putBucketAccelerate 接口返回值 */ interface PutBucketAccelerateResult extends GeneralResult {} // getBucketAccelerate /** getBucketAccelerate 接口参数 */ interface GetBucketAccelerateParams extends BucketParams {} /** getBucketAccelerate 接口返回值 */ interface GetBucketAccelerateResult extends GeneralResult { /** 全球加速的具体信息 */ InventoryConfiguration: AccelerateConfiguration; } // putBucketEncryption /** 默认的服务端加密配置规则 */ interface EncryptionRule { /** 服务端加密的默认配置信息 */ ApplySideEncryptionConfiguration: { /** 要使用的服务端加密算法,枚举值:AES256 */ SSEAlgorithm: 'AES256'; }; } /** 包含默认加密的配置参数 */ interface ServerSideEncryptionConfiguration { /** 默认的服务端加密配置规则 */ Rule: EncryptionRule[]; } /** putBucketEncryption 接口参数 */ interface PutBucketEncryptionParams extends BucketParams { /** 包含默认加密的配置参数 */ ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration; } /** putBucketEncryption 接口返回值 */ interface PutBucketEncryptionResult extends GeneralResult {} // getBucketAccelerate /** getBucketEncryption 接口参数 */ interface GetBucketEncryptionParams extends BucketParams {} /** getBucketEncryption 接口返回值 */ interface GetBucketEncryptionResult extends GeneralResult { /** 默认加密的配置参数 */ ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration; } // deleteBucketEncryption /** deleteBucketEncryption 接口参数 */ interface DeleteBucketEncryptionParams extends BucketParams {} /** deleteBucketEncryption 接口返回值 */ interface DeleteBucketEncryptionResult extends GeneralResult {} // headObject /** headObject 接口参数 */ interface HeadObjectParams extends ObjectParams {} /** headObject 接口返回值 */ interface HeadObjectResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 对象的版本 ID */ VersionId?: string; } // getObject // getObjectStream /** getObject 接口参数 */ interface GetObjectParams extends ObjectParams { // nodejs getObject 不支持传参BodyType // BodyType?: 'text' | 'blob' | 'arraybuffer', /** 写入流,可以传本地文件写入流 */ Output?: Stream; /** 请求里的 Url Query 参数,传入该值中的 key/value 将会被 URLEncode */ Query?: Query; /** 请求里的 Url Query 参数。传入该值将直接拼接在 Url 上,不会对其进行 URLEncode */ QueryString?: string; /** 当对象在指定时间后被修改,则返回对象,否则返回 HTTP 状态码为304(Not Modified) */ IfModifiedSince?: string; /** 当对象在指定时间后未被修改,则返回对象,否则返回 HTTP 状态码为412(Precondition Failed) */ IfUnmodifiedSince?: string; /** 当对象的 ETag 与指定的值一致,则返回对象,否则返回 HTTP 状态码为412(Precondition Failed) */ IfMatch?: string; /** 当对象的 ETag 与指定的值不一致,则返回对象,否则返回 HTTP 状态码为304(Not Modified) */ IfNoneMatch?: string; /** 针对本次下载进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误 */ TrafficLimit?: number; /** 设置响应中的 Cache-Control 头部的值 */ ResponseCacheControl?: string; /** 设置响应中的 Content-Disposition 头部的值 */ ResponseContentDisposition?: string; /** 设置响应中的 Content-Encoding 头部的值 */ ResponseContentEncoding?: string; /** 设置响应中的 Content-Language 头部的值 */ ResponseContentLanguage?: string; /** 设置响应中的 Content-Type 头部的值 */ ResponseExpires?: string; /** 设置响应中的 Expires 头部的值 */ ResponseContentType?: string; /** RFC 2616 中定义的字节范围,范围值必须使用 bytes=first-last 格式,first 和 last 都是基于0开始的偏移量。例如 bytes=0-9 表示下载对象的开头10个字节的数据 ,如果不指定,则表示下载整个对象 */ Range?: string; /** 当启用版本控制时,指定要下载的版本 ID,如不指定则下载对象的最新版本 */ VersionId?: string; /** 下载的进度回调方法 */ onProgress?: onProgress; } /** getObject 接口返回值 */ interface GetObjectResult extends GeneralResult { /** 对象内容 */ Body: Buffer; /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 对象的版本 ID */ VersionId?: string; } // putObject /** putObject 接口参数 */ interface PutObjectParams extends ObjectParams { /** 要上传对象内容 */ Body: UploadBody; /** 上传的文件大小,单位 Byte 字节,如果不传且 Body 是流,会走服务端流式上传 */ ContentLength?: number; /** 请求里的 Url Query 参数 */ Query?: string; /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */ CacheControl?: string; /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */ ContentDisposition?: string; /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */ ContentEncoding?: string; /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或image/jpeg */ ContentType?: string; /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */ Expires?: string; /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */ Expect?: string; /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */ StorageClass?: StorageClass; /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB,注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */ 'x-cos-meta-*'?: string; /** 任务开始上传的回调方法 */ onTaskReady?: (TaskId: COS.TaskId) => void; onTaskStart?: (TaskInfo: COS.Task) => void; /** 上传的进度回调方法 */ onProgress?: onProgress; } /** putObject 接口返回值 */ interface PutObjectResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ Location: string; /** 对象的版本 ID */ VersionId?: VersionId; } /** appendObject 接口参数 */ interface AppendObjectParams extends PutObjectParams { /** 追加操作的起始点 */ Position: number; } // deleteObject /** deleteObject 接口参数 */ interface DeleteObjectParams extends ObjectParams {} /** deleteObject 接口返回值 */ interface DeleteObjectResult extends GeneralResult {} // deleteMultipleObject /** deleteMultipleObject 接口参数 */ interface DeleteMultipleObjectParams extends BucketParams { /** 要删除的对象列表 */ Objects: { /** 要删除的对象键 */ Key: Key; /** 要删除的对象版本 ID */ VersionId?: string; }[]; /** 是否启动 Quiet 模式 */ Quiet?: boolean; } /** deleteMultipleObject 接口返回值 */ interface DeleteMultipleObjectResult extends GeneralResult { Deleted: { /** 删除成功的对象的对象键 */ Key: Key; /** 删除成功的版本 ID,仅当请求中指定了要删除对象的版本 ID 时才返回该元素 */ VersionId?: VersionId; /** 仅当对该对象的删除创建了一个删除标记,或删除的是该对象的一个删除标记时才返回该元素,布尔值,固定为 true */ DeleteMarker?: BooleanString; /** 仅当对该对象的删除创建了一个删除标记,或删除的是该对象的一个删除标记时才返回该元素,值为创建或删除的删除标记的版本 ID */ DeleteMarkerVersionId?: VersionId; }[]; Error: { /** 删除失败的对象的对象键 */ Key: Key; /** 删除失败的版本 ID,仅当请求中指定了要删除对象的版本 ID 时才返回该元素 */ VersionId?: string; /** 删除失败的错误码,用来定位唯一的错误条件和确定错误场景 */ Code?: string; /** 删除失败的具体错误信息 */ Message?: string; }[]; } // getObjectAcl /** getObjectAcl 接口参数 */ interface GetObjectAclParams extends ObjectParams { VersionId?: VersionId; } /** getObjectAcl 接口返回值 */ interface GetObjectAclResult extends GeneralResult { /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write */ ACL: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantRead: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantReadAcp: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantWriteAcp: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者 */ GrantFullControl: Grant; /** 存储桶持有者信息 */ Owner: Owner; /** 被授权者信息与权限信息 */ Grants: Grants[]; } // putObjectAcl /** putObjectAcl 接口参数 */ interface PutObjectAclParams extends ObjectParams { /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; } /** putObjectAcl 接口返回值 */ interface PutObjectAclResult extends GeneralResult {} // optionsObject /** optionsObject 接口参数 */ interface OptionsObjectParams extends ObjectParams { /** 发起 CORS 请求所在的页面域名(Origin) */ Origin: string; /** 发起 CORS 请求所用的方法(Method) */ AccessControlRequestMethod: Method; /** 发起 CORS 请求时使用的 HTTP 请求头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */ AccessControlRequestHeaders: string; } /** optionsObject 接口返回值 */ interface OptionsObjectResult extends GeneralResult { /** 允许发起 CORS 的域名,可能的值有以下两种: *:代表允许所有域名 请求头 Origin 中指定的域名:代表允许指定域名 */ AccessControlAllowOrigin: string; /** 允许发起 CORS 请求所使用的方法(Method),可使用英文逗号(,)分隔多个方法 */ AccessControlAllowMethods: string; /** 允许发起 CORS 请求带的 HTTP 头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */ AccessControlAllowHeaders: string; /** 允许浏览器获取的 CORS 请求中的 HTTP 响应头部,不区分英文大小写,可使用英文逗号(,)分隔多个头部 */ AccessControlExposeHeaders: string; /** CORS 配置的有效时间,单位为秒,在有效时间内,浏览器无须为同一请求再次发起预检请求 */ AccessControlMaxAge: string; } // restoreObject interface RestoreRequest { /** 指定恢复出的临时副本的有效时长,单位为“天” */ Days: number | string; /** 恢复工作参数 */ CASJobParameters: { /** 恢复时,Tier 可以指定为支持的恢复模式。 对于恢复归档存储类型数据,有三种恢复模式,分别为: Expedited:极速模式,恢复任务在1 - 5分钟内可完成。 Standard:标准模式,恢复任务在3 - 5小时内完成 Bulk:批量模式,恢复任务在5 - 12小时内完成。 对于恢复深度归档存储类型数据,有两种恢复模式,分别为: Standard:标准模式,恢复时间为12 - 24小时。 Bulk:批量模式,恢复时间为24 - 48小时。 */ Tier: 'Expedited' | 'Standard' | 'Bulk'; }; } /** restoreObject 接口参数 */ interface RestoreObjectParams extends ObjectParams { /** 包含 POST Object restore 操作的所有请求信息 */ RestoreRequest: RestoreRequest; /** 当启用版本控制时,指定要恢复的版本 ID,如不指定则恢复对象的最新版本 */ VersionId?: VersionId; } /** restoreObject 接口返回值 */ interface RestoreObjectResult extends GeneralResult {} // selectObjectContent // selectObjectContentStream /** selectObjectContent 接口参数 */ interface SelectObjectContentParams extends ObjectParams { /** 接口的版本信息,当前最新版本是 2 */ SelectType: number; /** 检索参数,当前版本支持检索 JSON、CSV 文件内容 */ SelectRequest: Record; /** 当启用版本控制时,指定要检索的版本 ID,如不指定则检索对象的最新版本 */ VersionId?: VersionId; } /** selectObjectContent 接口返回值 */ interface SelectObjectContentResult extends GeneralResult { /** 查询过程统计信息 */ Stats: { /** 如果文件是压缩文件,该数值代表文件解压前的字节大小;如果文件不是压缩文件,该数值即文件的字节大小 */ BytesScanned: number; /** 如果文件是压缩文件,该数值代表文件解压后的字节大小;如果文件不是压缩文件,该数值即文件的字节大小 */ BytesProcessed: number; /** COS Select 在本次查询中返回的检索结果字节大小 */ BytesReturned: number; }; /** 查询的结果内容 */ Payload?: Buffer; } // putObjectCopy /** putObjectCopy 接口参数 */ interface PutObjectCopyParams extends ObjectParams { /** 源对象的 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 */ CopySource: string; /** 是否复制源对象的元数据信息,枚举值:Copy,Replaced,默认为 Copy。如果标记为 Copy,则复制源对象的元数据信息;如果标记为 Replaced,则按本次请求的请求头中的元数据信息作为目标对象的元数据信息;当目标对象和源对象为同一对象时,即用户试图修改元数据时,则标记必须为 Replaced */ MetadataDirective?: 'Copy' | 'Replaced'; /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 当对象在指定时间后被修改,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */ CopySourceIfModifiedSince?: string; /** 当对象在指定时间后未被修改,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */ CopySourceIfUnmodifiedSince?: string; /** 当对象的 ETag 与指定的值一致,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */ CopySourceIfMatch?: string; /** 当对象的 ETag 与指定的值不一致,则执行复制操作,否则返回 HTTP 状态码为412(Precondition Failed) */ CopySourceIfNoneMatch?: string; /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */ StorageClass?: StorageClass; /** RFC 2616 中定义的缓存指令,将作为目标对象元数据保存 */ CacheControl?: string; /** RFC 2616 中定义的文件名称,将作为目标对象元数据保存 */ ContentDisposition?: string; /** RFC 2616 中定义的编码格式,将作为目标对象元数据保存 */ ContentEncoding?: string; /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述目标对象的内容类型,将作为目标对象元数据保存。例如 text/html 或 image/jpeg。 */ ContentType?: string; /** RFC 2616 中定义的缓存失效时间,将作为目标对象元数据保存 */ Expires?: string; /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为目标对象元数据保存,大小限制为2KB。注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */ 'x-cos-meta-*'?: string; } /** putObjectCopy 接口返回值 */ interface PutObjectCopyResult extends GeneralResult { ETag: string; CRC64: string; LastModified: string; VersionId: string; Location: Location; } // putObjectTagging /** putObjectTagging 接口参数 */ interface PutObjectTaggingParams extends ObjectParams { /** 标签集合,最多支持10个标签 */ Tags: Tag[]; /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */ VersionId?: VersionId; } /** putObjectTagging 接口返回值 */ interface PutObjectTaggingResult extends GeneralResult {} // getObjectTagging /** getObjectTagging 接口参数 */ interface GetObjectTaggingParams extends ObjectParams {} /** getObjectTagging 接口返回值 */ interface GetObjectTaggingResult extends GeneralResult { /** 标签集合,最多支持10个标签 */ Tags: Tag[]; } // deleteObjectTagging /** deleteObjectTagging 接口参数 */ interface DeleteObjectTaggingParams extends ObjectParams {} /** deleteObjectTagging 接口返回值 */ interface DeleteObjectTaggingResult extends GeneralResult {} // multipartInit /** multipartInit 接口参数 */ interface MultipartInitParams extends ObjectParams { /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */ CacheControl?: string; /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */ ContentDisposition?: string; /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */ ContentEncoding?: string; /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或 image/jpeg */ ContentType?: string; /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */ Expires?: string; /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 请求里的 Url Query 参数 */ Query?: Query; /** 对象存储类型。例如 STANDARD | STANDARD_IA | ARCHIVE | DEEP_ARCHIVE | INTELLIGENT_TIERING | MAZ_STANDARD | MAZ_STANDARD_IA | MAZ_INTELLIGENT_TIERING。默认值:STANDARD */ StorageClass?: StorageClass; /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB。注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */ 'x-cos-meta-*'?: string; } /** multipartInit 接口返回值 */ interface MultipartInitResult extends GeneralResult { UploadId: string; } // multipartUpload /** multipartUpload 接口参数 */ interface MultipartUploadParams extends ObjectParams { /** 分块上传的任务 ID */ UploadId: UploadId; /** 标识本次分块上传的编号,范围在1 - 10000 */ PartNumber: PartNumber; /** 要上传分片内容 */ Body: UploadBody; /** 要上传分片内容大小 */ ContentLength?: number; /** 服务端加密算法 */ ServerSideEncryption?: string; } /** multipartUpload 接口返回值 */ interface MultipartUploadResult extends GeneralResult { /** 返回对象的 MD5 算法校验值,ETag 的值可以用于检查分块的内容是否发生变化 */ ETag: ETag; } // uploadPartCopy /** uploadPartCopy 接口参数 */ interface UploadPartCopyParams extends ObjectParams { /** 源对象 URL 路径,可以通过 versionid 子资源指定历史版本 */ CopySource: string; /** 分块上传的任务 ID */ UploadId: UploadId; /** 标识本次分块上传的编号,范围在1 - 10000 */ PartNumber: PartNumber; /** 源对象的字节范围,范围值必须使用 bytes=first-last 格式,first 和 last 都是基于 0 开始的偏移量。例如 bytes=0-9 表示您希望拷贝源对象的开头10个字节的数据,如果不指定,则表示拷贝整个对象 */ CopySourceRange?: string; /** 当 Object 在指定时间后被修改,则执行操作,否则返回412,可与 x-cos-copy-source-If-None-Match 一起使用,与其他条件联合使用返回冲突 */ CopySourceIfModifiedSince?: string; /** 当 Object 在指定时间后未被修改,则执行操作,否则返回412,可与 x-cos-copy-source-If-Match 一起使用,与其他条件联合使用返回冲突 */ CopySourceIfUnmodifiedSince?: string; /** 当 Object 的 Etag 和给定一致时,则执行操作,否则返回412,可与 x-cos-copy-source-If-Unmodified-Since 一起使用,与其他条件联合使用返回冲突 */ CopySourceIfMatch?: string; /** 当 Object 的 Etag 和给定不一致时,则执行操作,否则返回412,可与 x-cos-copy-source-If-Modified-Since 一起使用,与其他条件联合使用返回冲突 */ CopySourceIfNoneMatch?: string; } /** uploadPartCopy 接口返回值 */ interface UploadPartCopyResult extends GeneralResult { /** 返回对象的 MD5 算法校验值,ETag 的值可以用于检查分块的内容是否发生变化 */ ETag: ETag; } // multipartComplete /** multipartComplete 接口参数 */ interface MultipartCompleteParams extends ObjectParams { /** 分块上传的任务 ID */ UploadId: UploadId; /** 用来说明本次分块上传中每个块的信息 */ Parts: Part[]; } /** multipartComplete 接口返回值 */ interface MultipartCompleteResult extends GeneralResult { /** 使用 Upload Part 请求上传分块成功后返回的 ETag 响应头部的值 */ ETag: ETag; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ Location: Location; /** 对象的版本 ID;当未启用版本控制时,该节点的值为空字符串;当启用版本控制时,启用版本控制之前的对象,其版本 ID 为 null;当暂停版本控制时,新上传的对象其版本 ID 为 null,且同一个对象最多只存在一个版本 ID 为 null 的对象版本 */ VersionId?: VersionId; } // multipartList /** multipartList 接口参数 */ interface MultipartListParams extends BucketParams { /** 限定返回的 Object key 必须以 Prefix 作为前缀。注意使用 prefix 查询时,返回的 key 中仍会包含 Prefix。 */ Prefix: Prefix; /** 一个字符的分隔符,常用 / 字符,用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点。被分组的对象键不再出现在后续对象列表中 */ Delimiter: Delimiter; /** 设置最大返回的 multipart 数量,合法取值从1到1000,默认1000 */ MaxUploads?: number; /** 与 upload-id-marker 一起使用:当 upload-id-marker 未被指定时,ObjectName 字母顺序大于 key-marker 的条目将被列出。当 upload-id-marker 被指定时,ObjectName 字母顺序大于 key-marker 的条目被列出,ObjectName 字母顺序等于 key-marker 同时 UploadId 大于 upload-id-marker 的条目将被列出。 */ KeyMarker?: Key; /** 与 key-marker 一起使用:当 key-marker 未被指定时,upload-id-marker 将被忽略。当 key-marker 被指定时,ObjectName字母顺序大于 key-marker 的条目被列出,ObjectName 字母顺序等于 key-marker 同时 UploadId 大于 upload-id-marker 的条目将被列出。 */ UploadIdMarker?: UploadId; /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */ EncodingType?: EncodingType; } /** multipartList 接口返回值 */ interface MultipartListResult extends GeneralResult { /** 每个上传任务的信息 */ Upload: { /** 对象键 */ Key: Key; /** 分块上传的任务 ID */ UploadId: UploadId; /** 上传任务发起者的信息 */ Initiator: Initiator; /** 上传任务所有者的信息 */ Owner: Owner; /** 对象存储类型。枚举值 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 */ StorageClass: StorageClass; /** UploadId 的创建时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z */ Initiated: IsoDateTime; }[]; /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */ IsTruncated: BooleanString; /** 假如返回条目被截断,则返回的 NextKeyMarker 就是下一个条目的起点。 */ NextKeyMarker: Key; /** 假如返回条目被截断,则返回的 UploadId 就是下一个条目的起点。 */ NextUploadIdMarker: UploadId; } // multipartListPart /** multipartListPart 接口参数 */ interface MultipartListPartParams extends ObjectParams { /** 请求的对象键,最前面不带 /,例如 images/1.jpg */ Key: Key; /** 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId */ UploadId: UploadId; /** 单次返回最大的条目数量,默认1000 */ MaxParts?: number; /** 默认以 UTF-8 二进制顺序列出条目,所有列出条目从 marker 开始 */ PartNumberMarker?: string; /** 规定返回值的编码方式,可选值:url,代表返回的对象键为 URL 编码(百分号编码)后的值,例如“腾讯云”将被编码为%E8%85%BE%E8%AE%AF%E4%BA%91 */ EncodingType?: EncodingType; } /** multipartListPart 接口返回值 */ interface MultipartListPartResult extends GeneralResult { /** 用来说明本次分块上传中每个块的信息 */ Part: { /** 块的编号 */ PartNumber: PartNumber; /** 说明块最后被修改时间 */ LastModified: IsoDateTime; /** 块的 MD5 算法校验值 */ ETag: ETag; /** 说明块大小,单位是 Byte */ Size: number; }[]; /** 上传任务所有者的信息 */ Owner: Owner; /** 上传任务发起者的信息 */ Initiator: Initiator; /** 假如返回条目被截断,则返回 NextMarker 就是下一个条目的起点 */ NextPartNumberMarker: number; /** 对象存储类型。枚举值 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 */ StorageClass: StorageClass; /** 仅当响应条目有截断(IsTruncated 为 true)才会返回该节点,该节点的值为当前响应条目中的最后一个对象键,当需要继续请求后续条目时,将该节点的值作为下一次请求的 marker 参数传入 */ IsTruncated: BooleanString; } // multipartAbort /** multipartAbort 接口参数 */ interface MultipartAbortParams extends ObjectParams { UploadId: string; } /** multipartAbort 接口返回值 */ interface MultipartAbortResult extends GeneralResult {} // sliceUploadFile /** sliceUploadFile 接口参数 */ interface SliceUploadFileParams extends ObjectParams { /** 要上传的本地文件路径 */ FilePath: string; /** 分块上传时,每片的字节数大小,默认值1048576(1MB) */ ChunkSize?: number; /** 分块上传时,每片的字节数大小,默认值1048576(1MB) */ SliceSize?: number; /** 请求里的 Url Query 参数 */ Query?: string; /** RFC 2616 中定义的缓存指令,将作为对象元数据保存 */ CacheControl?: string; /** RFC 2616 中定义的文件名称,将作为对象元数据保存 */ ContentDisposition?: string; /** RFC 2616 中定义的编码格式,将作为对象元数据保存 */ ContentEncoding?: string; /** RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。例如text/html或image/jpeg */ ContentType?: string; /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */ Expires?: string; /** RFC 2616 中定义的缓存失效时间,将作为对象元数据保存 */ Expect?: string; /** 允许用户自定义存储桶权限,有效值:private | public-read | public-read-write,可选 */ ACL?: ObjectACL; /** 赋予被授权者读取对象的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantRead?: Grant; /** 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantReadAcp?: Grant; /** 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantWriteAcp?: Grant; /** 赋予被授权者操作对象的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者,可选 */ GrantFullControl?: Grant; /** 对象存储类型。枚举值 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 */ StorageClass?: StorageClass; /** 包括用户自定义元数据头部后缀和用户自定义元数据信息,将作为对象元数据保存,大小限制为2KB,注意:用户自定义元数据信息支持下划线(_),但用户自定义元数据头部后缀不支持下划线,仅支持减号(-) */ 'x-cos-meta-*'?: string; /** 任务开始上传的回调方法 */ onTaskReady?: (TaskId: COS.TaskId) => void; onTaskStart?: (TaskInfo: COS.Task) => void; /** 上传的进度回调方法 */ onProgress?: onProgress; /** 续传校验的进度回调方法 */ onHashProgress?: onProgress; } /** sliceUploadFile 接口返回值 */ interface SliceUploadFileResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ Location: string; /** 对象的版本 ID */ VersionId?: VersionId; } // abortUploadTask /** abortUploadTask 接口参数 */ interface AbortUploadTaskParams extends ObjectParams { /** 清理上传任务的级别,枚举值 'task' | 'file' | 'bucket',默认 task */ Level?: 'task' | 'file' | 'bucket'; /** 要清理的 UploadId,Level 为 task 时必选 */ UploadId?: UploadId; } /** abortUploadTask 接口返回值 */ interface AbortUploadTaskResult extends GeneralResult {} // uploadFiles type UploadFileItemParams = (PutObjectParams | SliceUploadFileParams) & { /** 要上传的本地文件路径 */ FilePath: string; /** 上传的进度回调方法 */ onProgress?: onProgress; /** 上传完成回调方法 */ onFileFinish?: (err: Error, data?: Record) => void; }; /** 要上传的单个文件参数 */ interface UploadFileItemResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ Location: string; /** 对象的版本 ID */ VersionId?: VersionId; } interface UploadFilesParams { /** 要上传的文件参数列表 */ files: UploadFileItemParams[]; /** 使用 uploadFiles 批量上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */ SliceSize?: number; /** 所有文件整体上传进度回调方法 */ onProgress?: onProgress; /** 所有文件上传完成回调方法 */ onFileFinish?: (err: CosError, data?: Record) => void; } /** uploadFiles 接口返回值 */ interface UploadFilesResult extends GeneralResult { /** 文件列表上传结果 */ files: { /** 单个文件上传参数 */ options: UploadFileItemParams; /** 单个文件上传错误信息 */ error: Error; /** 单个文件上传成功信息 */ data: UploadFileItemResult; }[]; } // uploadFile 高级上传 interface FileFinishInfo { err: Error; data: UploadFileItemResult; options: UploadFileItemParams; } type onFileFinish = (err: Error, data: UploadFileItemResult, options: UploadFileItemParams) => void; type UploadFileParams = (PutObjectParams | SliceUploadFileParams) & { /** 要上传的本地文件路径 */ FilePath: string; /** 使用 uploadFile 高级上传时,文件大小大于该数值将使用按分块上传,否则将调用简单上传,单位 Byte,默认值1048576(1MB) */ SliceSize?: number; /** 上传的进度回调方法 */ onProgress?: onProgress; /** 上传完成回调方法 */ onFileFinish?: onFileFinish; }; /** uploadFiles 接口返回值 */ interface UploadFileResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 创建的存储桶访问地址,不带 https:// 前缀,例如 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/images/1.jpg */ Location: string; /** 对象的版本 ID */ VersionId?: VersionId; } // sliceCopyFile /** sliceCopyFile 接口参数 */ interface SliceCopyFileParams extends ObjectParams { /** 源对象的 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 */ CopySource: string; /** 使用 sliceCopyFile 分块复制文件时,文件大小大于该数值将使用分块复制 ,否则将调用简单复制,默认值10485760(10MB) */ CopySliceSize?: number; /** 使用 sliceCopyFile 分块复制文件时,每片的大小字节数,默认值10485760(10MB) */ CopyChunkSize?: number; /** 分片复制进度回调方法 */ onProgress: onProgress; } /** sliceCopyFile 接口返回值 */ interface SliceCopyFileResult extends GeneralResult {} // getTaskList type TaskId = string; type Task = { /** 上传任务 ID */ id: TaskId; /** 存储桶的名称,格式为,例如examplebucket-1250000000 */ Bucket: Bucket; /** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */ Region: Region; /** 请求的对象键,最前面不带 /,例如 images/1.jpg */ Key: Key; /** 要上传的本地文件路径 */ FilePath: string; /** 上传状态 */ state: 'waiting' | 'checking' | 'uploading' | 'error' | 'paused' | 'success' | 'canceled'; /** 上传错误信息 */ error: string | Error | { Code: string; Message: string }; /** 已上传内容大小,单位 B(字节) */ loaded: number; /** 上传文件大小,单位 B(字节) */ size: number; /** 上传速递,单位 B/s */ speed: number; /** 上传进度,范围 0-1,保留两位小数 */ percent: number; /** 续传校验进度,范围 0-1,保留两位小数 */ hashPercent: number; }; /** 上传任务列表 */ type TaskList = Task[]; // request /** request 接口参数 */ interface RequestParams { Bucket?: Bucket; Region?: Region; /** 操作方法,如 get,post,delete, head 等 HTTP 方法 */ Method: string; /** 请求的对象键,最前面不带 / */ Key?: Key; /** 请求里的 Url Query 参数 */ Query?: Query; /** 请求里的 Body 参数 */ Body?: UploadBody; /** 请求的 API 动作接口(可理解为不带 = 的 Query 参数),如 acl、tagging、image_process 等 */ Action?: Action; /** 请求url */ Url?: string; /** 返回值body是否不需要解析 */ RawBody?: boolean; ContentType?: string; /** 请求时带上的 Header 字段 */ Headers?: Headers; } /** Request 接口返回值 */ interface RequestResult extends GeneralResult { Body?: Buffer; Response?: any; } // getObjectUrl /** getObjectUrl 接口参数 */ interface GetObjectUrlParams extends ObjectParams { /** 获取的 Url 是否计算签名 */ Sign?: boolean; /** 请求方法 */ Method?: Method; /** 请求里的 Url Query 参数,传入该值中的 key/value 将会被 URLEncode */ Query?: Query; /** 请求里的 Url Query 参数。传入该值将直接拼接在 Url 上,不会对其进行 URLEncode */ QueryString?: string; /** 签名几秒后失效,默认为900秒 */ Expires?: number; /** 是否使用全球加速 */ UseAccelerate?: boolean; /** 调用操作存储桶和对象的 API 时自定义请求域名。可以使用模板,如"{Bucket}.cos.{Region}.myqcloud.com",即在调用 API 时会使用参数中传入的 Bucket 和 Region 进行替换。 */ Domain?: string; /** http协议,枚举值'http:','https:' */ Protocol?: string; } /** getObjectUrl 接口返回值 */ interface GetObjectUrlResult { /** 返回对象 Url */ Url: string; } interface DownloadFileParams { Bucket: Bucket; Region: Region; Key: Key; FilePath: string; ChunkSize?: number; ParallelLimit?: number; RetryTimes?: number; TaskId?: string; onTaskReady?: (TaskId: COS.TaskId) => void; onProgress?: onProgress; } interface DownloadFileResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag; /** 对象的版本 ID */ VersionId?: string; } interface DownloadFileResult extends GeneralResult { /** 对象的实体标签(Entity Tag),是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化,例如"8e0b617ca298a564c3331da28dcb50df"。此头部并不一定返回对象的 MD5 值,而是根据对象上传和加密方式而有所不同 */ ETag: ETag, /** 对象的版本 ID */ VersionId?: string, } // getV4Auth interface GetV4AuthParams { /** 计算签名用的密钥 SecretId,如果不传会用实例本身的凭证,可选 */ SecretId?: string; /** 计算签名用的密钥 SecretKey,如果不传会用实例本身的凭证,可选 */ SecretKey?: string; /** 存储桶的名称,命名规则为 BucketName-APPID,例如 examplebucket-1250000000 */ Bucket?: Bucket; /** 请求的对象键,最前面不带 /,例如 images/1.jpg */ Key?: Key; /** 签名几秒后失效,默认为900秒 */ Expires?: number; } // getAuth interface GetAuthParams { /** 计算签名用的密钥 SecretId,如果不传会用实例本身的凭证,可选 */ SecretId?: string; /** 计算签名用的密钥 SecretKey,如果不传会用实例本身的凭证,可选 */ SecretKey?: string; /** 请求的存储桶,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */ Bucket?: Bucket; /** 请求的地域,如果传入了 Bucket、Region,签名会默认加上 Host 字段,可选 */ Region?: Region; /** 请求方法 */ Method?: Method; /** 请求的对象键,最前面不带 /,例如 images/1.jpg */ Key?: Key; /** 签名几秒后失效,默认为900秒 */ Expires?: number; /** 请求里的 Url Query 参数 */ Query?: Query; /** 请求里的 Header 参数 */ Headers?: Headers; /** 默认将host加入签名计算,关闭后可能导致越权风险,建议保持为true */ ForceSignHost?: boolean; } } /** * COS 类,创建该类的实例可用于调用 COS API * @see https://cloud.tencent.com/document/product/436/7751 */ declare class COS { // 构造方法 constructor(options: COS.COSOptions); // 静态属性 /** 当前 SDK 版本号 */ static version: string; // 静态方法 /** 计算签名 */ static getAuthorization: (options: COS.StaticGetAuthorizationOptions) => string; /** 工具 */ static util: COS.Util; // 实例方法 /** 获取用户的 bucket 列表 @see https://cloud.tencent.com/document/product/436/8291 */ getService(params: COS.GetServiceParams, callback: (err: COS.CosError, data: COS.GetServiceResult) => void): void; getService(params: COS.GetServiceParams): Promise; /** 创建 Bucket,并初始化访问权限 @see https://cloud.tencent.com/document/product/436/7738 */ putBucket(params: COS.PutBucketParams, callback: (err: COS.CosError, data: COS.PutBucketResult) => void): void; putBucket(params: COS.PutBucketParams): Promise; /** 查看是否存在该 Bucket,是否有权限访问 @see https://cloud.tencent.com/document/product/436/7735 */ headBucket(params: COS.HeadBucketParams, callback: (err: COS.CosError, data: COS.HeadBucketResult) => void): void; headBucket(params: COS.HeadBucketParams): Promise; /** 获取 Bucket 下的 Object 列表 @see https://cloud.tencent.com/document/product/436/7734 */ getBucket(params: COS.GetBucketParams, callback: (err: COS.CosError, data: COS.GetBucketResult) => void): void; getBucket(params: COS.GetBucketParams): Promise; /** 获取 Bucket 下的 Object 版本列表 @see https://cloud.tencent.com/document/product/436/35521 */ listObjectVersions( params: COS.ListObjectVersionsParams, callback: (err: COS.CosError, data: COS.ListObjectVersionsResult) => void, ): void; listObjectVersions(params: COS.ListObjectVersionsParams): Promise; /** 删除 Bucket @see https://cloud.tencent.com/document/product/436/7732 */ deleteBucket( params: COS.DeleteBucketParams, callback: (err: COS.CosError, data: COS.DeleteBucketResult) => void, ): void; deleteBucket(params: COS.DeleteBucketParams): Promise; /** 设置 Bucket 的 权限列表 @see https://cloud.tencent.com/document/product/436/7737 */ putBucketAcl( params: COS.PutBucketAclParams, callback: (err: COS.CosError, data: COS.PutBucketAclResult) => void, ): void; putBucketAcl(params: COS.PutBucketAclParams): Promise; /** 获取 Bucket 的 权限列表 @see https://cloud.tencent.com/document/product/436/7733 */ getBucketAcl( params: COS.GetBucketAclParams, callback: (err: COS.CosError, data: COS.GetBucketAclResult) => void, ): void; getBucketAcl(params: COS.GetBucketAclParams): Promise; /** 设置 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8279 */ putBucketCors( params: COS.PutBucketCorsParams, callback: (err: COS.CosError, data: COS.PutBucketCorsResult) => void, ): void; putBucketCors(params: COS.PutBucketCorsParams): Promise; /** 获取 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8274 */ getBucketCors( params: COS.GetBucketCorsParams, callback: (err: COS.CosError, data: COS.GetBucketCorsResult) => void, ): void; getBucketCors(params: COS.GetBucketCorsParams): Promise; /** 删除 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8283 */ deleteBucketCors( params: COS.DeleteBucketCorsParams, callback: (err: COS.CosError, data: COS.DeleteBucketCorsResult) => void, ): void; deleteBucketCors(params: COS.DeleteBucketCorsParams): Promise; /** 获取 Bucket 的 地域信息 */ getBucketLocation( params: COS.GetBucketLocationParams, callback: (err: COS.CosError, data: COS.GetBucketLocationResult) => void, ): void; getBucketLocation(params: COS.GetBucketLocationParams): Promise; /** 获取 Bucket 的读取权限策略 @see https://cloud.tencent.com/document/product/436/8282 */ putBucketPolicy( params: COS.PutBucketPolicyParams, callback: (err: COS.CosError, data: COS.PutBucketPolicyResult) => void, ): void; putBucketPolicy(params: COS.PutBucketPolicyParams): Promise; /** 获取 Bucket 的读取权限策略 @see https://cloud.tencent.com/document/product/436/8276 */ getBucketPolicy( params: COS.GetBucketPolicyParams, callback: (err: COS.CosError, data: COS.GetBucketPolicyResult) => void, ): void; getBucketPolicy(params: COS.GetBucketPolicyParams): Promise; /** 删除 Bucket 的 跨域设置 @see https://cloud.tencent.com/document/product/436/8285 */ deleteBucketPolicy( params: COS.DeleteBucketPolicyParams, callback: (err: COS.CosError, data: COS.DeleteBucketPolicyResult) => void, ): void; deleteBucketPolicy(params: COS.DeleteBucketPolicyParams): Promise; /** 设置 Bucket 的标签 @see https://cloud.tencent.com/document/product/436/34838 */ putBucketTagging( params: COS.PutBucketTaggingParams, callback: (err: COS.CosError, data: COS.PutBucketTaggingResult) => void, ): void; putBucketTagging(params: COS.PutBucketTaggingParams): Promise; /** 获取 Bucket 的标签设置 @see https://cloud.tencent.com/document/product/436/34837 */ getBucketTagging( params: COS.GetBucketTaggingParams, callback: (err: COS.CosError, data: COS.GetBucketTaggingResult) => void, ): void; getBucketTagging(params: COS.GetBucketTaggingParams): Promise; /** 删除 Bucket 的 标签设置 @see https://cloud.tencent.com/document/product/436/34836 */ deleteBucketTagging( params: COS.DeleteBucketTaggingParams, callback: (err: COS.CosError, data: COS.DeleteBucketTaggingResult) => void, ): void; deleteBucketTagging(params: COS.DeleteBucketTaggingParams): Promise; /** 设置 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8280 */ putBucketLifecycle( params: COS.PutBucketLifecycleParams, callback: (err: COS.CosError, data: COS.PutBucketLifecycleResult) => void, ): void; putBucketLifecycle(params: COS.PutBucketLifecycleParams): Promise; /** 获取 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8280 */ getBucketLifecycle( params: COS.GetBucketLifecycleParams, callback: (err: COS.CosError, data: COS.GetBucketLifecycleResult) => void, ): void; getBucketLifecycle(params: COS.GetBucketLifecycleParams): Promise; /** 删除 Bucket 生命周期 @see https://cloud.tencent.com/document/product/436/8278 */ deleteBucketLifecycle( params: COS.DeleteBucketLifecycleParams, callback: (err: COS.CosError, data: COS.DeleteBucketLifecycleResult) => void, ): void; deleteBucketLifecycle(params: COS.DeleteBucketLifecycleParams): Promise; /** 设置 Bucket 版本 @see https://cloud.tencent.com/document/product/436/19889 */ putBucketVersioning( params: COS.PutBucketVersioningParams, callback: (err: COS.CosError, data: COS.PutBucketVersioningResult) => void, ): void; putBucketVersioning(params: COS.PutBucketVersioningParams): Promise; /** 获取 Bucket 版本 @see https://cloud.tencent.com/document/product/436/19888 */ getBucketVersioning( params: COS.GetBucketVersioningParams, callback: (err: COS.CosError, data: COS.GetBucketVersioningResult) => void, ): void; getBucketVersioning(params: COS.GetBucketVersioningParams): Promise; /** 设置 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19223 */ putBucketReplication( params: COS.PutBucketReplicationParams, callback: (err: COS.CosError, data: COS.PutBucketReplicationResult) => void, ): void; putBucketReplication(params: COS.PutBucketReplicationParams): Promise; /** 获取 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19222 */ getBucketReplication( params: COS.GetBucketReplicationParams, callback: (err: COS.CosError, data: COS.GetBucketReplicationResult) => void, ): void; getBucketReplication(params: COS.GetBucketReplicationParams): Promise; /** 删除 Bucket 副本 @see https://cloud.tencent.com/document/product/436/19221 */ deleteBucketReplication( params: COS.DeleteBucketReplicationParams, callback: (err: COS.CosError, data: COS.DeleteBucketReplicationResult) => void, ): void; deleteBucketReplication(params: COS.DeleteBucketReplicationParams): Promise; /** 设置 Bucket 静态网站配置信息 @see https://cloud.tencent.com/document/product/436/31930 */ putBucketWebsite( params: COS.PutBucketWebsiteParams, callback: (err: COS.CosError, data: COS.PutBucketWebsiteResult) => void, ): void; putBucketWebsite(params: COS.PutBucketWebsiteParams): Promise; /** 获取 Bucket 的静态网站配置信息 @see https://cloud.tencent.com/document/product/436/31929 */ getBucketWebsite( params: COS.GetBucketWebsiteParams, callback: (err: COS.CosError, data: COS.GetBucketWebsiteResult) => void, ): void; getBucketWebsite(params: COS.GetBucketWebsiteParams): Promise; /** 删除 Bucket 的静态网站配置 @see https://cloud.tencent.com/document/product/436/31928 */ deleteBucketWebsite( params: COS.DeleteBucketWebsiteParams, callback: (err: COS.CosError, data: COS.DeleteBucketWebsiteResult) => void, ): void; deleteBucketWebsite(params: COS.DeleteBucketWebsiteParams): Promise; /** 设置 Bucket 的防盗链白名单或者黑名单 @see https://cloud.tencent.com/document/product/436/32492 */ putBucketReferer( params: COS.PutBucketRefererParams, callback: (err: COS.CosError, data: COS.PutBucketRefererResult) => void, ): void; putBucketReferer(params: COS.PutBucketRefererParams): Promise; /** 获取 Bucket 的防盗链白名单或者黑名单 @see https://cloud.tencent.com/document/product/436/32493 */ getBucketReferer( params: COS.GetBucketRefererParams, callback: (err: COS.CosError, data: COS.GetBucketRefererResult) => void, ): void; getBucketReferer(params: COS.GetBucketRefererParams): Promise; /** 设置 Bucket 自定义域名 */ putBucketDomain( params: COS.PutBucketDomainParams, callback: (err: COS.CosError, data: COS.PutBucketDomainResult) => void, ): void; putBucketDomain(params: COS.PutBucketDomainParams): Promise; /** 获取 Bucket 的自定义域名 */ getBucketDomain( params: COS.GetBucketDomainParams, callback: (err: COS.CosError, data: COS.GetBucketDomainResult) => void, ): void; getBucketDomain(params: COS.GetBucketDomainParams): Promise; /** 删除 Bucket 自定义域名 */ deleteBucketDomain( params: COS.DeleteBucketDomainParams, callback: (err: COS.CosError, data: COS.DeleteBucketDomainResult) => void, ): void; deleteBucketDomain(params: COS.DeleteBucketDomainParams): Promise; /** 设置 Bucket 的回源 */ putBucketOrigin( params: COS.PutBucketOriginParams, callback: (err: COS.CosError, data: COS.PutBucketOriginResult) => void, ): void; putBucketOrigin(params: COS.PutBucketOriginParams): Promise; /** 获取 Bucket 的回源 */ getBucketOrigin( params: COS.GetBucketOriginParams, callback: (err: COS.CosError, data: COS.GetBucketOriginResult) => void, ): void; getBucketOrigin(params: COS.GetBucketOriginParams): Promise; /** 删除 Bucket 的回源 */ deleteBucketOrigin( params: COS.DeleteBucketOriginParams, callback: (err: COS.CosError, data: COS.DeleteBucketOriginResult) => void, ): void; deleteBucketOrigin(params: COS.DeleteBucketOriginParams): Promise; /** 设置 Bucket 的日志记录 @see https://cloud.tencent.com/document/product/436/17054 */ putBucketLogging( params: COS.PutBucketLoggingParams, callback: (err: COS.CosError, data: COS.PutBucketLoggingResult) => void, ): void; putBucketLogging(params: COS.PutBucketLoggingParams): Promise; /** 获取 Bucket 的日志记录 @see https://cloud.tencent.com/document/product/436/17053 */ getBucketLogging( params: COS.GetBucketLoggingParams, callback: (err: COS.CosError, data: COS.GetBucketLoggingResult) => void, ): void; getBucketLogging(params: COS.GetBucketLoggingParams): Promise; /** 创建/编辑 Bucket 的清单任务 @see https://cloud.tencent.com/document/product/436/33707 */ putBucketInventory( params: COS.PutBucketInventoryParams, callback: (err: COS.CosError, data: COS.PutBucketInventoryResult) => void, ): void; putBucketInventory(params: COS.PutBucketInventoryParams): Promise; /** 获取 Bucket 的清单任务信息 @see https://cloud.tencent.com/document/product/436/33705 */ getBucketInventory( params: COS.GetBucketInventoryParams, callback: (err: COS.CosError, data: COS.GetBucketInventoryResult) => void, ): void; getBucketInventory(params: COS.GetBucketInventoryParams): Promise; /** 获取 Bucket 的清单任务信息 @see https://cloud.tencent.com/document/product/436/33706 */ listBucketInventory( params: COS.ListBucketInventoryParams, callback: (err: COS.CosError, data: COS.ListBucketInventoryResult) => void, ): void; listBucketInventory(params: COS.ListBucketInventoryParams): Promise; /** 删除 Bucket 的清单任务 @see https://cloud.tencent.com/document/product/436/33704 */ deleteBucketInventory( params: COS.DeleteBucketInventoryParams, callback: (err: COS.CosError, data: COS.DeleteBucketInventoryResult) => void, ): void; deleteBucketInventory(params: COS.DeleteBucketInventoryParams): Promise; /** 启用或者暂停存储桶的全球加速功能 @see https://cloud.tencent.com/document/product/436/38869 */ putBucketAccelerate( params: COS.PutBucketAccelerateParams, callback: (err: COS.CosError, data: COS.PutBucketAccelerateResult) => void, ): void; putBucketAccelerate(params: COS.PutBucketAccelerateParams): Promise; /** 查询存储桶的全球加速功能配置 @see https://cloud.tencent.com/document/product/436/38868 */ getBucketAccelerate( params: COS.GetBucketAccelerateParams, callback: (err: COS.CosError, data: COS.GetBucketAccelerateResult) => void, ): void; getBucketAccelerate(params: COS.GetBucketAccelerateParams): Promise; /** 设置指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40136 */ putBucketEncryption( params: COS.PutBucketEncryptionParams, callback: (err: COS.CosError, data: COS.PutBucketEncryptionResult) => void, ): void; putBucketEncryption(params: COS.PutBucketEncryptionParams): Promise; /** 查询指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40137 */ getBucketEncryption( params: COS.GetBucketEncryptionParams, callback: (err: COS.CosError, data: COS.GetBucketEncryptionResult) => void, ): void; getBucketEncryption(params: COS.GetBucketEncryptionParams): Promise; /** 删除指定存储桶下的默认加密配置 @see https://cloud.tencent.com/document/product/436/40138 */ deleteBucketEncryption( params: COS.DeleteBucketEncryptionParams, callback: (err: COS.CosError, data: COS.DeleteBucketEncryptionResult) => void, ): void; deleteBucketEncryption(params: COS.DeleteBucketEncryptionParams): Promise; /** 取回对应对象(Object)的元数据,Head的权限与Get的权限一致 @see https://cloud.tencent.com/document/product/436/7745 */ headObject(params: COS.HeadObjectParams, callback: (err: COS.CosError, data: COS.HeadObjectResult) => void): void; headObject(params: COS.HeadObjectParams): Promise; /** 下载对象(Object) @see https://cloud.tencent.com/document/product/436/7753 */ getObject(params: COS.GetObjectParams, callback: (err: COS.CosError, data: COS.GetObjectResult) => void): void; getObject(params: COS.GetObjectParams): Promise; /** 下载对象(Object),返回 Stream 对象 @see https://cloud.tencent.com/document/product/436/7753 */ getObjectStream( params: COS.GetObjectParams, callback?: (err: COS.CosError, data: COS.GetObjectResult) => void, ): Stream; /** 简单上传对象(Object)至指定存储桶 @see https://cloud.tencent.com/document/product/436/7749 */ putObject(params: COS.PutObjectParams, callback: (err: COS.CosError, data: COS.PutObjectResult) => void): void; putObject(params: COS.PutObjectParams): Promise; /** 删除一个指定的对象(Object) @see https://cloud.tencent.com/document/product/436/7743 */ deleteObject( params: COS.DeleteObjectParams, callback: (err: COS.CosError, data: COS.DeleteObjectResult) => void, ): void; deleteObject(params: COS.DeleteObjectParams): Promise; /** 批量删除指定存储桶中的多个对象(Object) @see https://cloud.tencent.com/document/product/436/8289 */ deleteMultipleObject( params: COS.DeleteMultipleObjectParams, callback: (err: COS.CosError, data: COS.DeleteMultipleObjectResult) => void, ): void; deleteMultipleObject(params: COS.DeleteMultipleObjectParams): Promise; /** 获取 Object 的权限列表 @see https://cloud.tencent.com/document/product/436/7744 */ getObjectAcl( params: COS.GetObjectAclParams, callback: (err: COS.CosError, data: COS.GetObjectAclResult) => void, ): void; getObjectAcl(params: COS.GetObjectAclParams): Promise; /** 设置 Object 的权限列表 @see https://cloud.tencent.com/document/product/436/7748 */ putObjectAcl( params: COS.PutObjectAclParams, callback: (err: COS.CosError, data: COS.PutObjectAclResult) => void, ): void; putObjectAcl(params: COS.PutObjectAclParams): Promise; /** 跨域资源共享(CORS)的预检(Preflight)请求 @see https://cloud.tencent.com/document/product/436/8288 */ optionsObject( params: COS.OptionsObjectParams, callback: (err: COS.CosError, data: COS.OptionsObjectResult) => void, ): void; optionsObject(params: COS.OptionsObjectParams): Promise; /** 恢复归档对象 @see https://cloud.tencent.com/document/product/436/12633 */ restoreObject( params: COS.RestoreObjectParams, callback: (err: COS.CosError, data: COS.RestoreObjectResult) => void, ): void; restoreObject(params: COS.RestoreObjectParams): Promise; /** 检索对象内容 @see https://cloud.tencent.com/document/product/436/37641 */ selectObjectContent( params: COS.SelectObjectContentParams, callback: (err: COS.CosError, data: COS.SelectObjectContentResult) => void, ): void; selectObjectContent(params: COS.SelectObjectContentParams): Promise; /** 检索对象内容,返回 Stream 对象 @see https://cloud.tencent.com/document/product/436/37641 */ selectObjectContentStream( params: COS.SelectObjectContentParams, callback?: (err: COS.CosError, data: COS.SelectObjectContentResult) => void, ): Stream; /** 复制对象 @see https://cloud.tencent.com/document/product/436/10881 */ putObjectCopy( params: COS.PutObjectCopyParams, callback: (err: COS.CosError, data: COS.PutObjectCopyResult) => void, ): void; putObjectCopy(params: COS.PutObjectCopyParams): Promise; /** 设置对象标签 @see https://cloud.tencent.com/document/product/436/42997 */ putObjectTagging( params: COS.PutObjectTaggingParams, callback: (err: COS.CosError, data: COS.PutObjectTaggingResult) => void, ): void; putObjectTagging(params: COS.PutObjectTaggingParams): Promise; /** 查询对象标签 @see https://cloud.tencent.com/document/product/436/42998 */ getObjectTagging( params: COS.GetObjectTaggingParams, callback: (err: COS.CosError, data: COS.GetObjectTaggingResult) => void, ): void; getObjectTagging(params: COS.GetObjectTaggingParams): Promise; /** 删除对象标签 @see https://cloud.tencent.com/document/product/436/42999 */ deleteObjectTagging( params: COS.DeleteObjectTaggingParams, callback: (err: COS.CosError, data: COS.DeleteObjectTaggingResult) => void, ): void; deleteObjectTagging(params: COS.DeleteObjectTaggingParams): Promise; /** 初始化分块上传 @see https://cloud.tencent.com/document/product/436/7746 */ multipartInit( params: COS.MultipartInitParams, callback: (err: COS.CosError, data: COS.MultipartInitResult) => void, ): void; multipartInit(params: COS.MultipartInitParams): Promise; /** 分块上传 @see https://cloud.tencent.com/document/product/436/7750 */ multipartUpload( params: COS.MultipartUploadParams, callback: (err: COS.CosError, data: COS.MultipartUploadResult) => void, ): void; multipartUpload(params: COS.MultipartUploadParams): Promise; /** 分块上传 @see https://cloud.tencent.com/document/product/436/8287 */ uploadPartCopy( params: COS.UploadPartCopyParams, callback: (err: COS.CosError, data: COS.UploadPartCopyResult) => void, ): void; uploadPartCopy(params: COS.UploadPartCopyParams): Promise; /** 完成分块上传 @see https://cloud.tencent.com/document/product/436/7742 */ multipartComplete( params: COS.MultipartCompleteParams, callback: (err: COS.CosError, data: COS.MultipartCompleteResult) => void, ): void; multipartComplete(params: COS.MultipartCompleteParams): Promise; /** 分块上传任务列表查询 @see https://cloud.tencent.com/document/product/436/7736 */ multipartList( params: COS.MultipartListParams, callback: (err: COS.CosError, data: COS.MultipartListResult) => void, ): void; multipartList(params: COS.MultipartListParams): Promise; /** 上传的分块列表查询 @see https://cloud.tencent.com/document/product/436/7747 */ multipartListPart( params: COS.MultipartListPartParams, callback: (err: COS.CosError, data: COS.MultipartListPartResult) => void, ): void; multipartListPart(params: COS.MultipartListPartParams): Promise; /** 抛弃分块上传 @see https://cloud.tencent.com/document/product/436/7740 */ multipartAbort( params: COS.MultipartAbortParams, callback: (err: COS.CosError, data: COS.MultipartAbortResult) => void, ): void; multipartAbort(params: COS.MultipartAbortParams): Promise; /** 分片上传文件,封装好分片上传的多个步骤的上传方法。 */ sliceUploadFile( params: COS.SliceUploadFileParams, callback: (err: COS.CosError, data: COS.SliceUploadFileResult) => void, ): void; sliceUploadFile(params: COS.SliceUploadFileParams): Promise; /** 清理分片上传 UploadId,封装好的清理单个文件或存储桶所有文件未完成的 UploadId。 */ abortUploadTask( params: COS.AbortUploadTaskParams, callback: (err: COS.CosError, data: COS.AbortUploadTaskResult) => void, ): void; abortUploadTask(params: COS.AbortUploadTaskParams): Promise; /** 高级上传文件 */ uploadFile(params: COS.UploadFileParams, callback: (err: COS.CosError, data: COS.UploadFileResult) => void): void; uploadFile(params: COS.UploadFileParams): Promise; /** 批量上传文件 */ uploadFiles(params: COS.UploadFilesParams, callback: (err: COS.CosError, data: COS.UploadFilesResult) => void): void; uploadFiles(params: COS.UploadFilesParams): Promise; /** 分片复制文件 */ sliceCopyFile( params: COS.SliceCopyFileParams, callback: (err: COS.CosError, data: COS.SliceCopyFileResult) => void, ): void; sliceCopyFile(params: COS.SliceCopyFileParams): Promise; /** 获取上传任务列表 */ getTaskList(): COS.TaskList; /** 暂停任务 */ pauseTask(taskId: COS.TaskId): void; /** 重启任务 */ restartTask(taskId: COS.TaskId): void; /** 取消任务 */ cancelTask(taskId: COS.TaskId): void; /** 判断上传队列是否有未完成的任务 */ isUploadRunning(): boolean; /** cos.request */ request(params: COS.RequestParams, callback: (err: COS.CosError, data: COS.RequestResult) => void): void; request(params: COS.RequestParams): Promise; /** 获取文件下载链接 @see https://cloud.tencent.com/document/product/436/35651 */ getObjectUrl( params: COS.GetObjectUrlParams, callback: (err: COS.CosError, data: COS.GetObjectUrlResult) => void, ): string; /** 追加上传 @see https://cloud.tencent.com/document/product/436/7741 */ appendObject(params: COS.AppendObjectParams, callback: (err: COS.CosError, data: COS.GeneralResult) => void): void; appendObject(params: COS.AppendObjectParams): Promise; /** 分块下载 @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 */ downloadFile( params: COS.DownloadFileParams, callback: (err: COS.CosError, data: COS.DownloadFileResult) => void, ): void; downloadFile(params: COS.DownloadFileParams): Promise; /** 获取 COS JSON API (v4) 签名 @see https://cloud.tencent.com/document/product/436/6054 */ getV4Auth(params: COS.GetV4AuthParams): COS.Authorization; /** 获取 COS XMl API (v5) 签名 @see https://cloud.tencent.com/document/product/436/7778 */ getAuth(params: COS.GetAuthParams): COS.Authorization; on(action: string, callback: (params?: any) => void): void; off(action: string, callback: (params?: any) => void): void; emit(action: string, data?: any): void; } export = COS;