使用 GO 获取腾讯云 COS 临时授权与跨域设置

一、腾讯云

1) 这个设置可以根据自己需求来看,也可以用主账号拿到 AK/SK 即可 2) 用子用户是为了安全也防止出现其他问题

1.1、进入访问控制

  • 进入 控制台>访问控制>用户>用户列表

1.2、创建用户

  • 创建角色>选择快速创建

二、对象存储

2.1、创建桶

1) 基本信息 2) 高级可选配置 3 确认配置 )

2.2、跨域设置

# Expose-Headers
ETag
Content-Length
x-cos-request-id
x-cos-meta-keywords

三、代码示例

package main

import (
    "encoding/json"
    "fmt"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
    v20180813 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts/v20180813"
    "go-admin/app/oxs/models"
)

func GetCOS() {
    // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
    // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
    credential := common.NewCredential(
        "输入获取到的 ak",
        "输入获取到的 sk",
    )
    // 实例化一个client选项,可选的,没有特殊需求可以跳过
    cpf := profile.NewClientProfile()
    cpf.HttpProfile.Endpoint = "sts.tencentcloudapi.com"
    // 实例化要请求产品的client对象,clientProfile是可选的
    client, _ := v20180813.NewClient(credential, "ap-nanjing", cpf)

    // 实例化一个请求对象,每个接口都会对应一个request对象
    request := v20180813.NewGetFederationTokenRequest()
    // 您可以自定义调用方英文名称,由字母组成。
    request.Name = common.StringPtr("quark")
    policy := models.PolicyCOS{
        Version: "2.0",
        Statement: models.Statement{
            Effect: "allow",
            Action: []string{
                "cos:ListParts",
                "cos:PutObject",
                "cos:GetObject",
                "cos:HeadObject",
                "cos:OptionsObject",
                "cos:GetObjectTagging",
            },
            Resource: []string{
                "*",
            },
        },
    }
    // 转换成 JSON 格式
    policyJson, _ := json.Marshal(policy)
    request.Policy = common.StringPtr(string(policyJson))
    request.DurationSeconds = common.Uint64Ptr(1800)
    // 返回的resp是一个GetFederationTokenResponse的实例,与请求对象对应
    response, err := client.GetFederationToken(request)
    if _, ok := err.(*errors.TencentCloudSDKError); ok {
        fmt.Printf("An API error has returned: %s", err)
        //return
    }
    if err != nil {
        panic(err)
    }
    // 输出json格式的字符串回包
    fmt.Printf("%s", response.ToJsonString())
}

版权声明:
作者:Akiraka
链接:https://www.akiraka.net/code/golang/1352.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
使用 GO 获取腾讯云 COS 临时授权与跨域设置
一、腾讯云 1) 这个设置可以根据自己需求来看,也可以用主账号拿到 AK/SK 即可 2) 用子用户是为了安全也防止出现其他问题 1.1、进入访问控制 进入 控制台>……
<<上一篇
下一篇>>
文章目录
关闭
目 录