首页 > 解决方案 > Go - 当 S3 对象名称包含“=”时出现 SignatureDoesNotMatch 错误

问题描述

我正在努力使用 s3manager 在 S3 上创建文件。文件名需要采用以下格式“set=2012-04-3”,包含“=”。不带“=”的上传完美...

代码:

sess := session.Must(session.NewSession())

uploader := s3manager.NewUploader(sess)

_, err = uploader.Upload(&s3manager.UploadInput{
    Bucket: aws.String("/testbucket/data/set=2012-04-3/"),
    Key:    aws.String("test.json"),
    Body:   bytes.NewReader([]byte(message.Body)),
})

if err != nil {
    fmt.Printf("\n Error: There was an issue uploading to s3: %s \n", err.Error())
}

将不胜感激这里的任何帮助

标签: goamazon-s3aws-lambdaaws-sdkaws-sdk-go

解决方案


等号 (=) 应该是URL 编码或引用为 HEX。有关更多信息,请参阅 AWS S3 文档https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html


推荐阅读