前言
SDK引用
1 | <!-- 引入在线资源 --> |
注意
由于Browser.js SDK通常在浏览器环境下使用,为避免暴露阿里云账号访问密钥(AccessKey ID和AccessKey Secret),强烈建议您使用临时访问凭证的方式执行OSS相关操作。
使用STS临时访问凭证访问OSS
基本步骤就是
- 创建用户
- 用户授予请求AssumeRole的权限
- 创建角色
- 创建权限
- 角色赋予新增的权限
创建用户
登录RAM控制台。
在左侧导航栏,选择身份管理>用户。
单击创建用户。
输入登录名称和显示名称。
在访问方式区域下,选择OpenAPI调用访问,然后单击确定。
根据界面提示,完成安全验证。
复制访问密钥(AccessKey ID和AccessKey Secret)。
重要
RAM用户的AccessKey Secret只在创建时显示,后续不支持查看,请妥善保管。
创建RAM用户后,您需要授予RAM用户通过扮演角色来调用STS服务的权限。
- 单击已创建RAM用户右侧对应的添加权限。
- 在新增授权页面,选择AliyunSTSAssumeRoleAccess系统策略。
创建RAM角色
您需要创建RAM角色,用于定义RAM角色被扮演时,可以获得OSS服务的哪些访问权限。
在左侧导航栏,选择身份管理>角色。
单击创建角色,选择可信实体类型为阿里云账号,单击下一步。
在创建角色对话框,角色名称填写为
RamOssUpload
,选择信任的云账号为当前云账号。单击完成。角色创建完成后,单击关闭。
在角色页面,搜索框输入角色名称
RamOssUpload
,然后单击RamOssUpload
。单击ARN右侧的复制,保存角色的ARN。
创建权限
在左侧导航栏,选择权限管理>权限策略。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑,然后在策略文档输入框中赋予角色上传文件到
cxzfile
的权限。具体配置示例如下:
1
2
3
4
5
6
7
8
9
10{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "oss:PutObject",
"Resource": "acs:oss:*:*:cxzfile/*"
}
]
}设置名称为
RamOssUploadPolicy
角色授权
为RAM角色RamOssUpload授予自定义权限策略。
- 在左侧导航栏,选择
身份管理
>角色
。 - 在角色页面,找到目标RAM角色
RamOssUpload
。 - 单击RAM角色
RamOssUpload
右侧的新增授权。 - 在添加权限页面下的自定义策略页签,选择已创建的自定义权限策略
RamOssUploadPolicy
。 - 单击确定。
SDK获取临时凭证
需要的信息有
1 | String endpoint = "sts.cn-qingdao.aliyuncs.com"; |
示例
1 | import com.aliyuncs.DefaultAcsClient; |
WEB端上传
ali-oss
SDK 是专为 Node.js 环境和浏览器环境设计的,但在小程序环境下可能会遇到兼容性问题。具体来说,微信小程序、支付宝小程序等环境可能会有不同的限制和要求。
npm安装
1 | npm install ali-oss --save |
示例
这里通过临时凭证进行文件上传
1 | import { apiCustomGetSts } from '@/assets/api/common_api.js' |