Serverless 应用中心 对象存储 COS 组件

对象存储 COS 组件是 serverless-tencent 组件库中的基础组件之一。通过对象存储 COS 组件,可以快速且方便地创建、配置和管理腾讯云的 COS 存储桶。

相关产品
Serverless 应用中心 产品页,含版本规格、价格与购买入口。

一、前提条件

已安装 Node.js。

注意:2020年9月1日起,Serverless 组件不再支持 Node.js10.0 以下版本,请注意升级。

二、安装

已经安装 Serverless Cloud Framework 。详情请参见 安装 Serverless Cloud Framework。

三、配置

1. 新建一个 cosDemo 文件夹;

mkdir cosDemo

2. 在 cosDemo 中创建 serverless.yml 文件;

Mac 系统Linux 系统Windows 系统cd cosDemotouch serverless.ymlcd cosDemotouch serverless.ymlcd cosDemoecho. > serverless.yml

3. 在创建好的serverless.yml文件中,进行以下配置:

# serverless.ymlorg: orgDemoapp: appDemostage: devcomponent: cosname: cosDemoinputs: bucket: my-bucket region: ap-guangzhou

查看详细配置文档 >>

四、部署

执行以下命令进行部署,返回信息如下:

[root@iZh8dhuyhmexn3Z demo]# scf deployserverless-cloud-frameworkAction: "deploy" – Stage: "dev" – App: "appDemo" – Instance: "cosDemo"region: ap-guangzhoubucket: my-bucket-xxxxxxxurl: http://my-bucket-xxxxxxx.cos.ap-guangzhou.myqcloud.comFull details: https://serverless.cloud.tencent.com/instances/appDemo%3Adev%3AcosDemo3s › cosDemo › Success

注意:说明:

注意:微信扫码授权部署有过期时间,如果想要持久授权,请参见 账号配置。

五、移除

执行以下命令移除部署的服务:

·仅删除云函数相关的配置、代码。

·关联的其他云资源(如 COS、CLS 等),平台均不会关联删除,你可以前往对应产品控制台删除,避免不必要的计费。

scf remove

六、账号配置(可选)

当前默认支持 CLI 扫描二维码登录,如你希望配置持久的环境变量/密钥信息,也可以本地创建 .env 文件:

以Linux系统/Mac系统为例,执行以下命令:

touch .env # 腾讯云的配置信息

在 .env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存。

# .envTENCENT_SECRET_ID=123TENCENT_SECRET_KEY=123

注意:说明:

七、完整配置

# serverless.ymlapp: appDemo # (否) 该应用名称stage: dev # (否) 用于区分环境信息,默认值为 devcomponent: cos # (是) 组件名称,此处为 cosname: cos-demo # (是) 实例名称inputs: src: src: ./ exclude: – .env bucket: my-bucket targetDir: / protocol: https region: ap-guangzhou replace: false # 部署时会先清理桶内所有文件,谨慎使用! website: false websiteConfig: index: index.html error: index.html ignoreHtmlExt: false # 是否忽略 html 扩展名,默认 false disableErrorStatus: false # 是否禁用错误码,默认 false acl: permissions: private grantRead: id="1234567" grantWrite: id="1234567" grantFullControl: id="1234567" cors: – maxAgeSeconds: 0 allowedMethods: – GET allowedOrigins: – '*' allowedHeaders: – '*' exposeHeaders: – '' tags: – key: abc value: xyz policy: – Principal: qcs: – 'qcs::cam::anyone:anyone' Effect: 'Allow' Action: – 'name/cos:HeadBucket' – 'name/cos:ListMultipartUploads' – 'name/cos:ListParts' – 'name/cos:GetObject' – 'name/cos:HeadObject' – 'name/cos:OptionsObject' Resource: – qcs::cos:ap-guangzhou:uid/123456789:my-bucket-123456789/* – Principal: qcs: – 'qcs::cam::uin/10023456789:uin/10023456789' Effect: 'Deny' Action: – 'name/cos:*' Resource: – qcs::cos:ap-guangzhou:uid/123456789:my-bucket-123456789/*

八、配置说明

主要参数说明如下:

参数 必选 类型 默认值 描述
bucket 是 string – 存储桶名称,如若不添加 AppId 后缀,则系统会自动添加,后缀为大写
region 是 string – 存储桶所属的区域
src 否 string – 要上传到存储桶的文件或目录
targetDir 否 string / 要上传到存储桶的目标目录,默认目录是根路径 /
protocol 否 string https 访问协议
acl 否 Acl – 访问控制配置
cors 否 Cors[] – 跨域资源共享配置
tags 否 Tag[] – 标签配置
policy 否 Policy – 策略控制配置
replace 否 boolean false 是否是替换式部署,如果为 true,部署时将 先删除对应 bucket 的所有旧文件。
website 否 boolean false 是否开启静态网站能力
websiteConfig 否 WebsiteConfig – 静态网站相关配置,只有 website 为 true 时才生效

九、Acl

参数 必选 类型 默认值 描述
permissions 否 string private 定义存储桶的访问控制列表(ACL)属性。有关枚举值(如 private、public-read),请参见 ACL 概述 中的“存储桶的预设 ACL”部分。
grantRead 否 string – 授予读取权限,以 id ="OwnerUin" 格式授权对存储桶读取的权限,例如 id="100000000001"
grantWrite 否 string – 授予写入权限,以 id ="OwnerUin" 格式授权对存储桶写入的权限,例如 id="100000000001"
grantFullControl 否 string – 授予全权控制权限,以 id ="OwnerUin" 格式授权对存储桶全权控制的权限,例如 id="100000000001"

十、Cors

参数 必选 类型 描述
id 是 string 配置规则的 id。
maxAgeSeconds 是 number 设置 OPTIONS 请求得到结果的有效期。
allowedMethods 是 string[] 允许的 HTTP 操作,枚举值:GET,PUT,HEAD,POST,DELETE。
allowedOrigins 是 string[] 允许的访问来源,支持通配符 *,格式为:协议://域名[:端口],例如:http://www.qq.com。
allowedHeaders 是 string[] 在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符*。
exposeHeaders 是 string[] 设置浏览器可以接收到的来自服务器端的自定义头部信息。

十一、Tag

参数 必选 类型 描述
key 是 string 标签的 Key,长度不超过 128 字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线。
value 是 string 标签的 Value,长度不超过 256 字节, 支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线。

十二、Policy

详情见 COS API 授权策略使用指引 和 访问策略语言概述。

注意:说明:

注意:Principal、Effect、Action、Resource 均为首字母大写。

十三、WebsiteConfig

静态网站相关配置如下:

参数 必选 类型 描述
index 否 string index.html
error 否 string error.html
disableErrorStatus 否 boolean false
ignoreHtmlExt 否 boolean false
赞 (0)
上一篇 4天前
下一篇 4天前