3 回答
TA贡献1862条经验 获得超6个赞
aws-go-sdk 中存在错误,您可能应该检查您所在的地区。
在您的代码中,您编写了用于获取 AWS 凭证的代码。
// Get the AWS credentials
creds := credentials.NewSharedCredentials("/Users/name/.aws/credentials", "default")
您可以在终端中尝试此操作:
aws 配置
并配置您的 aws-sdk。
否则,您可以使用 Minio。但是你必须把你的 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 放在你的代码中,这对生产使用来说非常糟糕。
s3Client, err := minio.New("s3.amazonaws.com", "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", false)
此外,您可以使用外部 API Viper来隐藏这些密钥。但我建议您使用官方的 AWS SDK for Go。
TA贡献1851条经验 获得超5个赞
aws-go-sdk 上存在错误,但解决方案是将区域更改为“us-east-1”
// Set up config
config := &aws.Config{
Region: aws.String("us-east-1"),
Credentials: creds,
}
TA贡献1795条经验 获得超7个赞
您也可以使用Minio-go客户端库,其开源并与 AWS S3 兼容。
这是放置对象的简单示例
包主
进口 (
“日志”
“操作系统”
“github.com/minio/minio-go”
)
功能主(){
// 注意:YOUR-ACCESSKEYID、YOUR-SECRETACCESSKEY、my-testfile、my-bucketname 和
// my-objectname 是虚拟值,请将它们替换为原始值。
// 默认情况下,请求始终是安全的 (HTTPS)。设置 insecure=true 以启用不安全 (HTTP) 访问。
// 这个布尔值是 New() 的最后一个参数。
// New 返回一个 Amazon S3 兼容的客户端对象。API 兼容性(v2 或 v4)是自动的
// 根据端点值确定。
s3Client, err := minio.New("s3.amazonaws.com", "YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", false)
如果错误!= nil {
log.Fatalln(err)
}
对象,错误:= os.Open(“我的测试文件”)
如果错误!= nil {
log.Fatalln(err)
}
延迟 object.Close()
n, err := s3Client.PutObject("my-bucketname", "my-objectname", object, "application/octet-stream")
如果错误!= nil {
log.Fatalln(err)
}
log.Println("Uploaded", "my-objectname", " of size: ", n, "Successfully.")
}
Status API Training Shop 博客 关于
希望能帮助到你。
- 3 回答
- 0 关注
- 255 浏览
添加回答
举报