使用 GO 获取阿里云 OSS 临时授权与跨域设置
一、进入阿里云控制台
- 进入 访问控制>身份管理>用户
1.1、创建用户
- 勾选 Open API 调用访问
- 获得 RAM 用户 AccessKey ID 和 AccessKey Secret 保存下来
1.2、为用户添加权限
- 为刚才创建的用户添加权限,搜索 AliyunSTSAssumeRoleAccess
1.3、创建角色
- 进入 访问控制>身份管理>角色
1.4、为角色添加策略
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:PutObject",
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:桶名称",
"acs:oss:*:*:桶名称/*"
]
}
]
}
1.5、查看角色权限
- ARN 需要用到
二、对象存储
2.1、创建桶
- 这个根据自己需求创建就可以了
2.2、ACL 设置
- 权限设置>Bucket 授权策略
- 临时授权方式上传无需设置acl,如AK/SK直传需要
1) 设置读写权限
2) 设置Bucket 授权策略
2.3、跨域设置
- 进入需要设置的桶>数据安全>跨域设置
# 暴露 Headers
ETag
x-oss-request-id
三、代码示例
- 官方文档地址 点击访问
# 安装 SDK
go get -u github.com/aliyun/alibaba-cloud-sdk-go/services/sts
package main
import (
"fmt"
"github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
)
func main() {
//构建一个阿里云客户端, 用于发起请求。
//设置调用者(RAM用户或RAM角色)的AccessKey ID和AccessKey Secret。
//第一个参数就是bucket所在位置,可查看oss对象储存控制台的概况获取
//第二个参数就是步骤一获取的AccessKey ID
//第三个参数就是步骤一获取的AccessKey Secret
client, err := sts.NewClientWithAccessKey("cn-hangzhou", "<AccessKeyId>", "<AccessKeySecret>")
//构建请求对象。
request := sts.CreateAssumeRoleRequest()
request.Scheme = "https"
//设置参数。关于参数含义和设置方法,请参见《API参考》。
request.RoleArn = "<RoleArn>" //步骤三获取的角色ARN
request.RoleSessionName = "<RoleSessionName>"//步骤三中的RAM角色名称
//发起请求,并得到响应。
response, err := client.AssumeRole(request)
if err != nil {
fmt.Print(err.Error())
}
fmt.Printf("response is %#v\n", response)
}
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/code/golang/1335.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
使用 GO 获取阿里云 OSS 临时授权与跨域设置
一、进入阿里云控制台
进入 访问控制>身份管理>用户
1.1、创建用户
勾选 Open API 调用访问
获得 RAM 用户 AccessKey ID 和 AccessKey Secret 保存……
文章目录
关闭
共有 0 条评论