Ser*_*rov 11 go amazon-web-services aws-sdk aws-sdk-go
之前我使用过环境变量并且工作正常.
现在我将配置变量迁移到单个文件中,并且我有AWS_SECRET_ACCESS_KEY和AWS_ACCESS_KEY_ID变量,这些变量包含从此文件加载的相应值.
我尝试了这段代码但收到错误:
creds := credentials.NewStaticCredentials("123", conf.AWS_SECRET_ACCESS_KEY, conf.AWS_ACCESS_KEY_ID)
sess, err := session.NewSession(&aws.Config{Credentials: creds})
Run Code Online (Sandbox Code Playgroud)
这是错误
InvalidClientTokenId:请求中包含的安全令牌无效.
如何正确地将我的密钥注入aws sdk调用?
Dav*_*ple 20
尝试重新排序你的args,以便ACCESS_KEY是第一个参数,SECRET_KEY是第二个:
creds := credentials.NewStaticCredentials(conf.AWS_ACCESS_KEY_ID, conf.AWS_SECRET_ACCESS_KEY, "")
Run Code Online (Sandbox Code Playgroud)
尝试添加该区域:
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2"),
Credentials: credentials.NewStaticCredentials(conf.AWS_ACCESS_KEY_ID, conf.AWS_SECRET_ACCESS_KEY, ""),
})
Run Code Online (Sandbox Code Playgroud)
或者您可以临时设置环境变量。
package main
import (
"fmt"
"os"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
)
const (
AccessKeyId = "XXXXXXXXXXXXXXXXXX"
SecretAccessKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Region = "eu-west-1"
Bucket = "XXXXX-XXXX-XXX"
)
func main() {
os.Setenv("AWS_ACCESS_KEY_ID", AccessKeyId)
os.Setenv("AWS_SECRET_ACCESS_KEY", SecretAccessKey)
filename := os.Args[1]
file, err := os.Open(filename)
if err != nil {
fmt.Println("Failed to open file", filename, err)
os.Exit(1)
}
defer file.Close()
conf := aws.Config{Region: aws.String(Region)}
sess := session.New(&conf)
svc := s3manager.NewUploader(sess)
fmt.Println("Uploading file to S3...")
result, err := svc.Upload(&s3manager.UploadInput{
Bucket: aws.String(Bucket),
Key: aws.String(filepath.Base(filename)),
Body: file,
})
if err != nil {
fmt.Println("error", err)
os.Exit(1)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5878 次 |
最近记录: |