跳到主要内容

附录:共享 COS 桶(ExternalStorage)

单个腾讯云账号下的 COS 存储桶数量存在账号级配额上限。当平台需要在单账号下创建超过 150 个环境时,若每个环境都自动分配独立的 COS 桶,将触及该配额导致环境创建失败。

此时可在 CreateEnv 中传入 ExternalStorage,让多个环境共享同一个外部 COS 桶:环境不再自动分配独立桶,而是将指定桶挂载为该环境的云存储介质,并通过 BasePath 前缀实现环境间文件目录的隔离。

ExternalStorage 字段说明

字段必选类型说明
BucketNameString共享的 COS 桶名称,例如 tcb-ext-stor-1257619089
RegionString桶所在地域,例如 ap-shanghai
BasePathString基础路径。绑定后,用户访问云存储内文件时,后台会自动以 BasePath 作为前缀拼接,用于桶内目录隔离
EnabledBoolean是否启用外部存储,传 true 即启用

仅在 Resources 中包含 storage 时该参数生效。

调用示例

const tencentcloud = require("tencentcloud-sdk-nodejs");
const TcbClient = tencentcloud.tcb.v20180608.Client;

const client = new TcbClient({
credential: {
secretId: process.env.TENCENTCLOUD_SECRETID,
secretKey: process.env.TENCENTCLOUD_SECRETKEY,
},
profile: {
httpProfile: {
endpoint: "tcb.tencentcloudapi.com",
},
},
});

client
.CreateEnv({
PackageId: "baas_personal",
Alias: "tenant-a-env",
Resources: ["storage"],
ExternalStorage: {
Enabled: true,
BucketName: "tcb-ext-stor-1257619089",
Region: "ap-shanghai",
BasePath: "ext-storage-v1",
},
Period: 1,
})
.then(
(resp) => {
console.log(resp.EnvId);
},
(err) => {
console.error("error", err);
},
);

确认生效

环境创建完成后,可通过 DescribeEnvs 返回的 Storages[0].Bucket 确认共享桶已生效。