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 關注
- 307 瀏覽
添加回答
舉報