使用Go SDK发起OSS请求,您需要配置访问凭证。阿里云服务会通过访问凭证验证您的身份信息和访问权限。您可以根据使用场景对认证和授权的要求,选择不同类型的访问凭证。本文介绍如何配置临时访问凭证和长期访问凭证。
前提条件
在配置访问凭证前,您需要安装Go SDK。详情请参见Go安装。
访问凭证
您可以选择以下类型的访问凭证。
-
临时访问凭证:对于需要高安全性的场景,例如临时授权应用访问OSS,建议使用临时访问凭证。临时访问凭证可以限制访问的有效期,从而减少访问凭证泄露的风险。此外,临时访问凭证支持权限控制,可以有效地避免权限过大的问题。更多信息,请参见使用临时访问凭证。
-
长期访问凭证:出于安全性考虑,不建议您使用长期访问凭证,建议您使用临时访问凭证。对于需要便利性的场景,长期访问凭证可以在较长时间内免除多次刷新的麻烦。建议每三个月更换一次长期访问凭证,以提高账号的安全性。当长期访问凭证泄露或者不再使用时,应该及时删除或者禁用相关的访问凭证,以免造成安全风险。更多信息,请参见使用长期访问凭证。
使用临时访问凭证
当您准备临时使用Go SDK访问OSS服务时,您可以选择以下方式配置临时访问凭证。
-
配置STS临时访问凭证:如果您需要在规定时间内访问您的OSS,您可以通过STS服务颁发一个STS临时访问凭证。临时访问凭证无需透露您的RAM用户访问密钥,使您的OSS访问更加安全。
-
配置RAM角色:如果您需要授权访问或跨账号访问OSS,您可以通过RAM用户扮演对应RAM角色的方式授权访问或跨账号访问OSS。
-
配置ECS的RAM角色:如果你需要在阿里云的云服务器ECS中访问您的OSS,您可以通过ECS实例RAM角色的方式访问OSS。实例RAM角色允许您将一个角色关联到云服务器实例,在实例内部基于STS临时凭证通过指定方法访问OSS。STS临时凭证由系统自动生成和更新,应用程序可以使用指定的实例元数据URL获取临时凭证,无需特别管理。
配置STS临时访问凭证
-
创建RAM用户。
具体操作,请参见创建RAM用户。
-
为RAM用户授予
AliyunSTSAssumeRoleAccess
权限。具体操作,请参见为RAM用户授权。
-
使用RAM用户调用STS服务的AssumeRole接口获取STS临时访问凭证。
具体操作,请参见AssumeRole。
-
配置STS临时访问凭证。
环境变量
-
使用获取的STS临时访问凭证配置环境变量。
macOS
-
打开终端。
-
执行以下命令。
nano ~/.bash_profile
-
在文件末尾添加从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** export OSS_SESSION_TOKEN=CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
-
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。 -
执行以下命令以使更改生效。
source ~/.bash_profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_SESSION_TOKEN
成功返回示例如下:
STS.NV5ZCwphFSXqscqUHAKbH**** IrVTNZNy5yQelTETg0cZML3TQn**** CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
Linux
-
打开终端。
-
执行以下命令。
sudo vim /etc/profile
-
在文件末尾添加从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
export OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** export OSS_SESSION_TOKEN=CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
-
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。 -
输入以下命令以使更改生效。
source /etc/profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_SESSION_TOKEN
成功返回示例如下:
STS.NV5ZCwphFSXqscqUHAKbH**** IrVTNZNy5yQelTETg0cZML3TQn**** CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
Windows
-
打开命令行。
-
执行以下命令配置从STS服务获取的临时访问凭证(包括AccessKeyId、AccessKeySecret、SecurityToken)。
set OSS_ACCESS_KEY_ID=STS.NV5ZCwphFSXqscqUHAKbH**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** set OSS_SESSION_TOKEN=CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
-
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%" setx OSS_SESSION_TOKEN "%OSS_SESSION_TOKEN%"
-
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% echo %OSS_SESSION_TOKEN%
成功返回示例如下:
STS.NV5ZCwphFSXqscqUHAKbH**** IrVTNZNy5yQelTETg0cZML3TQn**** CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVt****
-
-
从环境变量中获取STS临时访问凭证。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "os" ) func main() { // 使用环境变量中获取的STS临时访问密钥和安全令牌配置访问凭证。 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) } }
代码嵌入
警告
在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "os" ) func main(){ // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。 // yourAccessKeyId以及yourAccessKeySecret分别填写从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。 // yourSecurityToken填写从STS服务获取的安全令牌(SecurityToken)。 client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret", oss.SecurityToken("yourSecurityToken")) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } }
-
配置RAM角色
-
执行以下命令安装
alibabacloud_credentials
。pip install alibabacloud_credentials
-
获取RAM用户的访问密钥。
具体操作,请参见创建RAM用户的AccessKey。
重要
为降低RAM用户的访问密钥被泄露的风险,对于超过3个月的RAM用户的访问密钥,建议及时轮换。对于长期不用的RAM用户的访问密钥,建议及时禁用并删除。
-
获取目标RAM角色的RamRoleArn。
说明
RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。$accountID为阿里云账号ID。$roleName为RAM角色名称。
具体操作,请参见查看RAM角色。
-
配置RAM用户的访问密钥和目标RAM角色的RAMRoleArn作为访问凭证。
环境变量
-
使用获取的RAM用户的访问密钥和目标RAM角色的RamRoleArn配置环境变量。
macOS
-
打开终端。
-
执行以下命令。
nano ~/.bash_profile
-
在文件末尾添加获取的RAM用户的访问密钥和RAM角色的RamRoleArn。
export OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** export OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
-
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。 -
执行以下命令以使更改生效。
source /etc/profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn**** acs:ram::17464958********:role/ossststest
Linux
-
打开终端。
-
执行以下命令。
sudo vim /etc/profile
-
在文件末尾添加获取的RAM用户的访问密钥和RAM角色的RamRoleArn。
export OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** export OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
-
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。 -
输入以下命令以使更改生效。
source /etc/profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET echo $OSS_STS_ROLE_ARN
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn**** acs:ram::17464958********:role/ossststest
Windows
-
打开命令行。
-
执行以下命令配置RAM用户的访问密钥和RAM角色的RamRoleArn。
set OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn**** set OSS_STS_ROLE_ARN=acs:ram::17464958********:role/ossststest
-
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%" setx OSS_STS_ROLE_ARN "%OSS_STS_ROLE_ARN%"
-
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET% echo %OSS_STS_ROLE_ARN%
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn**** acs:ram::17464958********:role/ossststest
-
-
从环境变量中获取RAM用户的访问密钥RAM角色的RamRoleArn。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/aliyun/credentials-go/credentials" "os" ) type Credentials struct { AccessKeyId string AccessKeySecret string SecurityToken string } type defaultCredentialsProvider struct { cred credentials.Credential } func (credentials *Credentials) GetAccessKeyID() string { return credentials.AccessKeyId } func (credentials *Credentials) GetAccessKeySecret() string { return credentials.AccessKeySecret } func (credentials *Credentials) GetSecurityToken() string { return credentials.SecurityToken } func (defBuild *defaultCredentialsProvider) GetCredentials() oss.Credentials { id,_ := defBuild.cred.GetAccessKeyId() secret,_ := defBuild.cred.GetAccessKeySecret() token,_ := defBuild.cred.GetSecurityToken() return &Credentials{ AccessKeyId: *id, AccessKeySecret: *secret, SecurityToken: *token, } } func NewCredentialsProvider(credential credentials.Credential) defaultCredentialsProvider { return defaultCredentialsProvider{ cred: credential, } } func main(){ config := new(credentials.Config). // 填写Credential类型,固定值为ram_role_arn。 SetType("ram_role_arn"). // 从环境变量中获取RAM用户的访问密钥(AccessKeyId和AccessKeySecret)。 SetAccessKeyId(os.Getenv("OSS_ACCESS_KEY_ID")). SetAccessKeySecret(os.Getenv("OSS_ACCESS_KEY_SECRET")). // 从环境变量中获取RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。 SetRoleArn(os.Getenv("OSS_STS_ROLE_ARN")). // 自定义角色会话名称,用于区分不同的令牌。 SetRoleSessionName("Role_Session_Name"). // (可选)限制STS Token权限。 SetPolicy(""). // (可选)限制STS Token的有效时间。 SetRoleSessionExpiration(3600) arnCredential, err := credentials.NewCredential(config) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } provider := NewCredentialsProvider(arnCredential) client, err := oss.New("oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider)) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } }
代码嵌入
警告
在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/aliyun/credentials-go/credentials" "os" ) type Credentials struct { AccessKeyId string AccessKeySecret string SecurityToken string } type defaultCredentialsProvider struct { cred credentials.Credential } func (credentials *Credentials) GetAccessKeyID() string { return credentials.AccessKeyId } func (credentials *Credentials) GetAccessKeySecret() string { return credentials.AccessKeySecret } func (credentials *Credentials) GetSecurityToken() string { return credentials.SecurityToken } func (defBuild *defaultCredentialsProvider) GetCredentials() oss.Credentials { id,_ := defBuild.cred.GetAccessKeyId() secret,_ := defBuild.cred.GetAccessKeySecret() token,_ := defBuild.cred.GetSecurityToken() return &Credentials{ AccessKeyId: *id, AccessKeySecret: *secret, SecurityToken: *token, } } func NewCredentialsProvider(credential credentials.Credential) defaultCredentialsProvider { return defaultCredentialsProvider{ cred: credential, } } func main(){ config := new(credentials.Config). // 填写Credential类型,固定值为ram_role_arn。 SetType("ram_role_arn"). // 填写RAM用户的访问密钥(AccessKeyId和AccessKeySecret)。 SetAccessKeyId("AccessKeyId"). SetAccessKeySecret("AccessKeySecret"). // 填写角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。 SetRoleArn("acs:ram::15069***********:role/ram-oss-test"). // 自定义角色会话名称,用于区分不同的令牌。 SetRoleSessionName("Role_Session_Name"). // (可选)限制STS Token权限。 SetPolicy(""). // (可选)限制STS Token的有效时间。 SetRoleSessionExpiration(3600) arnCredential, err := credentials.NewCredential(config) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } provider := NewCredentialsProvider(arnCredential) client, err := oss.New("oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider)) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } }
-
配置ECS的RAM角色
-
执行以下命令安装
alibabacloud_credentials
。go get github.com/aliyun/credentials-go/credentials
-
为ECS实例授予RAM角色。
具体操作,请参见授予实例RAM角色。
-
配置ECS的RAM角色作为访问凭证。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/aliyun/credentials-go/credentials" "os" ) type Credentials struct { AccessKeyId string AccessKeySecret string SecurityToken string } type CredentialsProvider struct { cred credentials.Credential } func (credentials *Credentials) GetAccessKeyID() string { return credentials.AccessKeyId } func (credentials *Credentials) GetAccessKeySecret() string { return credentials.AccessKeySecret } func (credentials *Credentials) GetSecurityToken() string { return credentials.SecurityToken } func (defBuild CredentialsProvider) GetCredentials() oss.Credentials { id,_ := defBuild.cred.GetAccessKeyId() secret,_ := defBuild.cred.GetAccessKeySecret() token,_ := defBuild.cred.GetSecurityToken() return &Credentials{ AccessKeyId: *id, AccessKeySecret: *secret, SecurityToken: *token, } } func NewStaticCredentialsProvider(credential credentials.Credential) CredentialsProvider { return CredentialsProvider{ cred: credential, } } func main(){ config := new(credentials.Config). // 指定Credential类型,固定值为ecs_ram_role。 SetType("ecs_ram_role"). // (可选项)指定角色名称。如果不指定,OSS会自动获取角色。强烈建议指定角色名称,以降低请求次数。 SetRoleName("RoleName") ecsCredential, err := credentials.NewCredential(config) if err != nil { return } provider := NewStaticCredentialsProvider(ecsCredential) client, err := oss.New("oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider)) if err != nil { fmt.Println("Error:", err) os.Exit(-1) } fmt.Printf("client:%#v ", client) }
使用长期访问凭证
当您准备在应用或服务中长期使用Go SDK访问OSS服务时,您可以通过以下方式配置长期访问凭证。
配置RAM用户的访问密钥:如果您需要长期访问您的OSS,您可以通过RAM用户的访问密钥的方式访问您的OSS。
配置RAM用户的访问密钥
-
获取RAM用户的访问密钥。
如何获取RAM用户的访问密钥,请参见创建RAM用户的AccessKey。
重要
对于超过3个月的RAM用户的访问密钥,建议及时轮换。对于长期不用的RAM用户的访问密钥,建议及时禁用并删除。以此降低RAM用户的访问密钥被泄露的风险。
-
配置RAM用户的访问密钥。
环境变量
-
配置环境变量。
macOS
-
打开终端。
-
执行以下命令。
nano ~/.bash_profile
-
在文件末尾添加RAM用户的访问密钥。
export OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn****
-
按
Ctrl
+X
,按Y
键确认保存,然后按Enter
键退出文件。 -
输入以下命令以使更改生效。
source ~/.bash_profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn****
Linux
-
打开终端。
-
执行以下命令。
sudo vim /etc/profile
-
在文件末尾添加RAM用户的访问密钥。
export OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** export OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn****
-
按
ESC
键退出编辑模式,输入:wq
,然后按Enter
键保存并退出文件。 -
输入以下命令以使更改生效。
source /etc/profile
-
执行以下命令验证环境变量配置。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn****
Windows
-
打开命令行。
-
执行以下命令配置RAM用户的访问密钥。
set OSS_ACCESS_KEY_ID=LTAI4GDty8ab9W4Y1D**** set OSS_ACCESS_KEY_SECRET=IrVTNZNy5yQelTETg0cZML3TQn****
-
执行以下命令以使更改生效。
setx OSS_ACCESS_KEY_ID "%OSS_ACCESS_KEY_ID%" setx OSS_ACCESS_KEY_SECRET "%OSS_ACCESS_KEY_SECRET%"
-
执行以下命令验证环境变量配置。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
成功返回示例如下:
LTAI4GDty8ab9W4Y1D**** IrVTNZNy5yQelTETg0cZML3TQn****
-
-
从环境变量中获取RAM用户的访问密钥。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "os" ) func main() { // 使用环境变量中获取的RAM用户的访问密钥配置访问凭证。 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) } }
代码嵌入
警告
在代码中嵌入访问凭证会导致安全问题。如果访问凭证被泄漏,攻击者就可以使用该访问凭证来访问您的资源OSS,造成损失。因此,建议您使用更安全的方式,例如从环境变量中获取访问凭证,来提高安全性。
package main import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "os" ) func main() { // 创建OSSClient实例。 // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。 // yourAccessKeyId和yourAccessKeySecret填写RAM用户的访问密钥(AccessKey ID和AccessKey Secret)。 client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret") if err != nil { fmt.Println("Error:", err) os.Exit(-1) } }
-
后续步骤
配置访问凭证后,您需要初始化OSSClient。详情请参见Go初始化。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/157091.html