t-comm
Version:
专业、稳定、纯粹的工具库
53 lines (52 loc) • 1.87 kB
TypeScript
import { AREA_MAP } from './config';
import type { IPurgeType, IPurgeMethod } from '../eo/type';
/**
* 上传文件到 COS 并刷新 CDN 缓存(一体化操作)
* 先上传文件到 COS,然后自动刷新对应的 CDN URL 缓存,支持 CDN 和 EdgeOne 两种刷新方式
* @param {object} config 配置信息
* @param {string} config.secretId 腾讯云 secretId
* @param {string} config.secretKey 腾讯云 secretKey
* @param {string} config.bucket COS bucket
* @param {string} config.region COS region
* @param {Array<object>} config.files 文件列表,每项包含 key、path、url
* @param {string} [config.area='mainland'] CDN 刷新区域
* @param {boolean} [config.useEO] 是否使用 EdgeOne 刷新(默认使用 CDN)
* @param {object} [config.eoOptions] EdgeOne 刷新配置
* @returns {Promise<{uploadResult: any, purgeResult: any, code: 1|2}>} code=2 表示上传和刷新均成功,code=1 表示上传成功但刷新失败
* @example
* ```ts
* const result = await uploadCOSFileAndPurgeUrlCache({
* secretId: 'xxx',
* secretKey: 'xxx',
* bucket: 'my-bucket-1250000000',
* region: 'ap-guangzhou',
* files: [{
* key: 'static/app.js',
* path: '/dist/app.js',
* url: 'https://cdn.example.com/static/app.js',
* }],
* });
* ```
*/
export declare function uploadCOSFileAndPurgeUrlCache({ secretId, secretKey, bucket, region, files, area, useEO, eoOptions, }: {
secretId: string;
secretKey: string;
bucket: string;
region: string;
files: Array<{
key: string;
path: string;
url: string;
}>;
area?: (typeof AREA_MAP)[keyof typeof AREA_MAP];
useEO?: boolean;
eoOptions?: {
zoneId: string;
type?: IPurgeType;
method?: IPurgeMethod;
};
}): Promise<{
uploadResult: any;
purgeResult: any;
code: 1 | 2;
}>;