详情页标题前

阿里云对象存储OSSGo授权策略-云淘科技

详情页1

本文介绍如何设置获取和删除指定存储空间(Bucket)的授权策略(Policy)。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见Go配置访问凭证。

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Go初始化。
  • 要设置Bucket Policy,您必须有oss:PutBucketPolicy权限;要获取Bucket Policy,您必须有oss:GetBucketPolicy权限;要删除Bucket Policy,您必须有oss:DeleteBucketPolicy权限。具体操作,请参见为RAM用户授权自定义的权限策略。

设置Bucket Policy

以下代码用于设置Bucket Policy:

package main

import (
    "fmt"
    "os"

    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
    /// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 配置授权策略。
    policyConfig := `
    {
        "Statement": [
            {
                "Action": [
                    "oss:GetObject",
                    "oss:ListObjects"
                ],
                "Effect" : "Allow",
                "Resource" : ["acs:oss:*:174649585760xxxx:examplebucket/*"]
            }
        ],
        "Version": "1"
    }`

    // 设置Bucket授权策略。
    // yourBucketName填写存储空间名称。
    err = client.SetBucketPolicy("yourBucketName", policyConfig)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    fmt.Println("SetBucketPolicy success")
}

获取Bucket Policy

以下代码用于获取Bucket Policy信息:

package main

import (
    "fmt"
    "os"

    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
    /// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 获取存储空间授权策略。
    // yourBucketName填写存储空间名称。
    strPolicy, err := client.GetBucketPolicy("yourBucketName")
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    fmt.Println("Bucket policy:", strPolicy)
}

删除Bucket Policy

以下代码用于删除Bucket Policy:

package main

import (
    "fmt"
    "os"

    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
    /// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 删除存储空间授权策略。
    // yourBucketName填写存储空间名称。
    err = client.DeleteBucketPolicy("yourBucketName")
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    fmt.Println("DeleteBucketPolicy success")
}

相关文档

  • 关于设置Bucket Policy的API接口说明,请参见PutBucketPolicy。

  • 关于获取Bucket Policy的API接口说明,请参见GetBucketPolicy。

  • 关于删除Bucket Policy的API接口说明,请参见DeleteBucketPolicy。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158222.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库设置可维护时间段-云淘科技

    为保障云数据库RDS实例的稳定性,后端系统会不定期对实例进行维护操作。默认可维护时间段为02:00~06:00,您可以根据业务规律,将可维护时间段设置在业务低峰期,以免维护过程中可能对业务造成的影响。 注意事项 在进行正式维护前,RDS会给阿里云账号中设置的联系人发送短信和邮件,请注意查收。 实例维护当天,为保障整个维护过程的稳定性,实例会在可维护时间段之前…

    阿里云数据库 2023年12月9日
  • 阿里云对象存储OSS第三方数据源迁移到 OSS-云淘科技

    您可以使用阿里云在线迁移服务将第三方数据源,如亚马逊AWS、谷歌云等数据轻松迁移至阿里云对象存储OSS。 使用在线迁移服务,您只需在控制台填写源数据地址和目标OSS地址信息,并创建迁移任务即可。启动迁移后,您可以通过控制台管理迁移任务,查看迁移进度、流量等信息;也可以生成迁移报告,查看迁移文件列表、错误文件列表。具体各个数据源的迁移操作,请参见在线迁移服务使…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLSJSON格式-云淘科技

    日志服务将数据投递到OSS后,支持存储为不同的文件格式。本文介绍JSON格式。 参数配置 在创建OSS投递任务(新版)时,如果选择存储格式为json,对应的参数配置如下所示。 参数 说明 是否投递tag 是否投递日志tag字段,例如__tag__:abc。 OSS文件地址 投递到OSS后,OSS文件地址样例如下所示。说明 在创建OSS投递任务时,如果您自定义…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSSGo简单上传-云淘科技

    简单上传是指通过PutObject方法上传单个文件(Object)。简单上传包括流式上传和文件上传,流式上传使用文件流、网络流等作为OSS文件的数据源,文件上传使用本地文件作为OSS文件的数据源。本文介绍如何使用流式上传和文件上传方式上传文件。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请…

    阿里云对象存储 2023年12月10日
  • 阿里云RDS数据库外网无法连接RDS MySQL或MariaDB:如何正确填写本地设备的公网IP地址-云淘科技

    在您通过公网访问RDS MySQL或MariaDB前,需要将本地设备或外部服务器的公网IP地址添加到RDS白名单中。本文介绍如何确定公网IP地址。 问题描述 已经通过ipconfig命令或搜索引擎查看本地IP地址并添加到白名单中,但仍然无法连接。 以上很可能是因为您查询到的公网IP地址不正确,或者本地公网IP地址变动。 说明 本文只适用于ECS以外的设备访问…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。