操作场景
对象存储 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.yml
org: orgDemoapp: appDemostage: devcomponent: cosname: cosDemo
inputs: bucket: my-bucket region: ap-guangzhou
查看详细配置文档 >>
部署
执行以下命令进行部署,返回信息如下:
[root@iZh8dhuyhmexn3Z demo]# scf deploy
serverless-cloud-frameworkAction: "deploy" - Stage: "dev" - App: "appDemo" - Instance: "cosDemo"
region: ap-guangzhoubucket: my-bucket-xxxxxxxurl: http://my-bucket-xxxxxxx.cos.ap-guangzhou.myqcloud.com
Full details: https://serverless.cloud.tencent.com/instances/appDemo%3Adev%3AcosDemo
3s › cosDemo › Success
说明微信扫码授权部署有过期时间,如果想要持久授权,请参考 账号配置。
移除
执行scf remove
命令移除部署的存储桶,返回信息如下:
[root@iZh8dhuyhmexn3Z demo]# scf remove
serverless-cloud-frameworkAction: "remove" - Stage: "dev" - App: "appDemo" - Instance: "cosDemo"
3s › cosDemo › Success
账号配置(可选)
当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/密钥信息,也可以本地创建 .env
文件:
touch .env # 腾讯云的配置信息
在 .env
文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存。
# .envTENCENT_SECRET_ID=123TENCENT_SECRET_KEY=123
说明如果没有腾讯云账号,请先 注册新账号。如果已有腾讯云账号,可以在 API 密钥管理 中获取 SecretId 和 SecretKey。
配置详情
完整配置
# serverless.yml
app: appDemo # (否) 该应用名称stage: dev # (否) 用于区分环境信息,默认值为 dev
component: 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 | 配置规则的 |
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 |
官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/149075.html