-
Notifications
You must be signed in to change notification settings - Fork 80
/
index.d.ts
2655 lines (2469 loc) · 132 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
* 腾讯云 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<string, any>;
/** 请求里的 Header 参数 */
type Headers = Record<string, any>;
/** 请求里的 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;
type CopySourceParserFunction = (source: string) => null | { Bucket: string; Region: string; Key: string };
// 实例参数
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;
/** http协议,枚举值'http:','https:','http','https:' */
Protocol?: 'http' | 'http:' | 'https' | 'https:';
/** 设置代理,格式如 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;
/** 是否严格校验 HTTPS 证书,默认 true */
StrictSsl?: boolean;
/** 自定义 UserAgent */
UserAgent?: string;
/** 默认将host加入签名计算,关闭后可能导致越权风险,建议保持为true */
ForceSignHost?: boolean;
AutoSwitchHost?: boolean;
ObjectKeySimplifyCheck?: boolean;
/** 自定义拷贝源解析器 */
CopySourceParser?: null | CopySourceParserFunction;
/** 获取签名的回调方法,如果没有 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 {
/** 存储桶的名称,格式为<bucketname-appid>,例如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 };
/** 当前请求的Url */
url: string;
/** 当前请求的method */
method: string;
}
/** 回调的错误格式,其中服务端返回错误码可查看 @see https://cloud.tencent.com/document/product/436/7730 */
type CosError = null | CosSdkError;
/** 存储桶操作接口的公共参数 */
interface BucketParams {
/** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
Bucket: Bucket;
/** 存储桶所在地域 @see https://cloud.tencent.com/document/product/436/6224 */
Region: Region;
/** 请求时带上的 Header 字段 */
Headers?: Headers;
}
/** 对象操作接口的公共参数 */
interface ObjectParams {
/** 存储桶的名称,格式为<bucketname-appid>,例如examplebucket-1250000000 */
Bucket: Bucket;
/** 存储桶所在地域,如果有传入只返回该地域的存储桶列表 */
Region: Region;
/** 请求的对象键,最前面不带 / */
Key: Key;
/** 发请求时带上的 Header 字段 */
Headers?: Headers;
}
// 所有接口的入参和出参
// getService
interface GetServiceParams {
/** 存储桶所在地域,如果传入只返回该地域的存储桶 */
Region?: Region;
/** 发请求时带上的 Header 字段 */
Headers?: Headers;
/** 传入标签键 */
TagKey?: string;
/** 传入标签值 */
TagValue?: string;
/** GMT 时间戳,和 CreateRange 参数一起使用,支持根据创建时间过滤存储桶 */
CreateTime?: number;
/** 和 CreateTime 参数一起使用,支持根据创建时间过滤存储桶 */
CreateRange?: 'lt' | 'gt' | 'lte' | 'gte' | string;
/** 起始标记,从该标记之后(不含)按照 UTF-8 字典序返回存储桶条目 */
Marker?: string;
/** 单次返回最大的条目数量,默认值为2000,最大为2000 */
MaxKeys?: number;
}
/** getService 接口返回值 */
interface GetServiceResult extends GeneralResult {
Buckets: {
/** 存储桶的名称,格式为<bucketname-appid>,例如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 {
/** 存储桶的名称,格式为<BucketName-APPID>,例如examplebucket-1250000000 */
Name: string;
/** 对象键匹配前缀,对应请求中的 prefix 参数 */
Prefix: string;
/** 起始对象键标记,从该标记之后(不含)按照 UTF-8 字典序返回对象键条目,对应请求中的 marker 参数 */
Marker: string;
/** 单次响应返回结果的最大条目数量,对应请求中的 max-keys 参数 */
MaxKeys: string;
/** 编码格式,对应请求中的 encoding-type 参数,且仅当请求中指定了 encoding-type 参数才会返回该节点 */
EncodingType?: string;
/** 对象条目 */
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;
/** 编码格式,对应请求中的 encoding-type 参数,且仅当请求中指定了 encoding-type 参数才会返回该节点 */
EncodingType?: string;
/** 存储桶的名称,格式为<BucketName-APPID>,例如examplebucket-1250000000 */
Name: string;
/** 对象键匹配前缀,对应请求中的 prefix 参数 */
Prefix: string;
/** 起始对象键标记,从该标记之后(不含)按照 UTF-8 字典序返回对象版本条目,对应请求中的 key-marker 参数 */
KeyMarker: string;
/** 起始版本 ID 标记,从该标记之后(不含)返回对象版本条目,对应请求中的 version-id-marker 参数 */
VersionIdMarker: string;
/** 单次响应返回结果的最大条目数量,对应请求中的 max-keys 参数 */
MaxKeys: string;
/** 分隔符,对应请求中的 delimiter 参数,且仅当请求中指定了 delimiter 参数才会返回该节点 */
Delimiter?: 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<string, any>;
/** 是否允许同一个 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<string, any>;
}
/** 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<string, any>;
}
// 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<string, any>;
/** 规则转换属性,对象何时转换为 Standard_IA 或 Archive 等存储类型 */
Transition?: Record<string, any>;
/** 规则过期属性 */
Expiration?: Record<string, any>;
/** 设置允许分片上传保持运行的最长时间 */
AbortIncompleteMultipartUpload?: Record<string, any>;
/** 指明非当前版本对象何时过期 */
NoncurrentVersionExpiration?: Record<string, any>;
/** 指明非当前版本对象何时转换为 STANDARD_IA 或 ARCHIVE 等存储类型 */
NoncurrentVersionTransition?: Record<string, any>;
};
/** 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:<region>::<bucketname-appid> */
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。可选 */