使用 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
分享
二维码
海报
使用 GO 获取阿里云 OSS 临时授权与跨域设置
一、进入阿里云控制台 进入 访问控制>身份管理>用户 1.1、创建用户 勾选 Open API 调用访问 获得 RAM 用户 AccessKey ID 和 AccessKey Secret 保存……
<<上一篇
下一篇>>
文章目录
关闭
目 录