关于阿里云 OSS 的介绍请参考官方文档:阿里云 OSS。
出于账号安全的考虑,前端使用 OSS 服务需要走临时授权,即拿一个临时凭证(STS Token)去调用 aliyun-oss SDK。关于临时授权请参考:RAM 和 STS 介绍,RAM 子账号,STS 临时授权访问 OSS。
前端上传文件到阿里云的相关操作可参考:浏览器端上传文件
了解以上概念之后,接下来可以去阿里云 OSS 的控制台进行相关的设置了(前提是开通了 OSS 服务)。
一、阿里云 OSS 控制台配置
1. 创建 Bucket
首先,我们创建一个 bucket,一个存储文件的容器:
接着,我们需要给 bucket 设置跨域,这样我们才能在网页中调用 Aliyun OSS 服务器的接口:
2. 创建 RAM 用户
接下来,前往 RAM 控制台进行子账号和权限的配置。
首先,我们创建一个用户,并给该用户分配调用 STS 服务 AssumeRole 接口的权限,这样待会儿后端就能以该用户的身份给前端分配 STS 凭证了:
我们需要保存一下该用户的 access key 和 access key secret,后端需要以此核实用户的身份。
3. 创建 RAM 角色
该角色即有权限在前端调用 aliyun-oss SDK 上传文件的用户角色,例如我们创建一个只有上传权限的角色,命名为 uploader:
接下来我们需要给该角色分配权限,可以通过创建一条权限策略并分配给角色,该权限策略里面只包含了上传文件、分片上传相关的权限:
策略具体内容为:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:PutObject",
"oss:InitiateMultipartUpload",
"oss:UploadPart",
"oss:UploadPartCopy",
"oss:CompleteMultipartUpload",
"oss:AbortMultipartUpload",
"oss:ListMultipartUploads",
"oss:ListParts"
],
"Resource": [
"acs:oss:*:*:这里填写你的bucket名称",
"acs:oss