【问题标题】:How to handle 301 redirect in aws go sdk如何在 aws go sdk 中处理 301 重定向
【发布时间】:2021-10-15 01:40:16
【问题描述】:

我试过这个例子:

https://github.com/aws/aws-sdk-go-v2/tree/main/example/service/s3/listObjects

并收到301重定向响应,本例不处理。

我还尝试了似乎自动处理 301 的 aws python SDK。我们如何配置 go aws 客户端像在 python 中一样自动处理 301?

【问题讨论】:

    标签: aws-sdk-go


    【解决方案1】:

    Go 库似乎没有自动处理 301 重定向,这可能是件好事。由于出口量大,在不同区域之间获取大量数据可能会很昂贵。

    如果您确实想从另一个存储桶获取数据,您应该知道该存储桶的位置。然后创建一个指向正确区域的 S3 客户端并使用它。可以使用manager.GetBucketRegion 确定 S3 存储桶区域:

    import "github.com/aws/aws-sdk-go-v2/feature/s3/manager"
    import "github.com/aws/aws-sdk-go-v2/service/s3"
    
    cfg, err := config.LoadDefaultConfig(ctx)
    if err != nil {
      return err
    }
    
    s3client := s3.NewFromConfig(cfg)
    
    bucket := "my-bucket"
    region, err := manager.GetBucketRegion(ctx, s3client, bucket)
    if err != nil {
        return err
    }
    
    if cfg.Region != region {
      regionCfg = cfg.Copy()
      regionCfg.Region = region
      s3client = s3.NewFromConfig(regionCfg)
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-20
      • 1970-01-01
      • 2011-02-26
      • 2017-04-25
      • 2011-07-25
      • 2022-01-25
      • 2011-07-06
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多