腾讯云 Serverless 应用中心 - 对象存储 COS 组件
文档简介:
操作场景:
对象存储 COS 组件是 serverless-tencent 组件库中的基础组件之一。通过对象存储 COS 组件,可以快速且方便地创建、配置和管理腾讯云的 COS 存储桶。
操作场景
对象存储 COS 组件是 serverless-tencent 组件库中的基础组件之一。通过对象存储 COS 组件,可以快速且方便地创建、配置和管理腾讯云的 COS 存储桶。
前提条件
已安装 Node.js。
注意:
2020年9月1日起,Serverless 组件不再支持 Node.js10.0 以下版本,请注意升级。
操作步骤
安装
已经安装 Serverless Cloud Framework 。详情请参见 安装 Serverless Cloud Framework。
配置
本地创建 serverless.yml 文件,在其中进行如下配置:
touch serverless.yml
# serverless.ymlorg: orgDemoapp: appDemostage: devcomponent: cosname: cosDemoinputs:bucket: my-bucketregion: 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 文件:
touch .env # 腾讯云的配置信息
在 .env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存。
# .envTENCENT_SECRET_ID=123TENCENT_SECRET_KEY=123
说明:
如果没有腾讯云账号,请先 注册新账号。
如果已有腾讯云账号,可以在 API 密钥管理 中获取 SecretId 和 SecretKey。
配置详情
完整配置
# serverless.ymlapp: appDemo # (否) 该应用名称stage: dev # (否) 用于区分环境信息,默认值为 devcomponent: cos # (是) 组件名称,此处为 cosname: cos-demo # (是) 实例名称inputs:src:src: ./exclude:- .envbucket: my-buckettargetDir: /protocol: httpsregion: ap-guangzhoureplace: false # 部署时会先清理桶内所有文件,谨慎使用!!!website: falsewebsiteConfig:index: index.htmlerror: index.htmlignoreHtmlExt: false # 是否是否忽略 html 扩展名,默认 falsedisableErrorStatus: false # 是否禁用错误码,默认 falseacl:permissions: privategrantRead: id="1234567"grantWrite: id="1234567"grantFullControl: id="1234567"cors:- maxAgeSeconds: 0allowedMethods:- GETallowedOrigins:- '*'allowedHeaders:- '*'exposeHeaders:- ''tags:- key: abcvalue: xyzpolicy:- 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
|
配置规则的
|
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
|