0

最近我将代码库从 aws-sdk-go v1 迁移到 v2。但我注意到迁移指南中似乎没有描述的差异,v1 和 v2 之间生成的预签名 URL 已更改:

  • v1:https://s3.amazonaws.com/<bucket>/<path>
  • v2:https://s3.<region>.amazonaws.com/<bucket>/<path>

经过一番研究,我发现另一个 Slack 线程提到 v2 现在使用 sig4,它将区域包含在 URL 中(此处)。

我的问题是我需要使用没有区域的旧主机名版本,因为旧代码依赖于s3.amazonaws.com主机名匹配。因此,我希望是否有任何方法可以将区域添加到 aws-sdk-go-v2 中的预签名 URL 中。

这是我用来生成 S3 预签名 URL 的代码:

input := &s3.GetObjectInput{
    Bucket: aws.String(bucket),
    Key:    aws.String(key),
}

psClient := s3.NewPresignClient(c.s3Client, s3.WithPresignExpires(expires))

res, _ := psClient.PresignGetObject(ctx, input)

res.URL

4

0 回答 0