Как получить ответ об ошибке формата xml, возвращаемый S3, с помощью aws-sdk-go? - PullRequest
0 голосов
/ 25 сентября 2019

Следующий ответ был возвращен с сервера S3:

<Error>
    <Code>BucketAlreadyOwnedByYou</Code>
    <Message>Your previous request to create the named bucket succeeded and you already own it.</Message>
    <BucketName>newbucket</BucketName>
    <Resource>/newbucket</Resource>
    <RequestId>15C79B745D6D5C78</RequestId>
    <HostId>1c8c1a3a-fe7a-472a-a401-b57d6997aa9e</HostId>
</Error>

Как получить ответ xml от сервера S3 с помощью aws-sdk-go при получении ошибки?Мне нужен весь ответ xml.

func createBucket(s *s3.S3) {
    out, err := s.CreateBucket(&s3.CreateBucketInput{
        Bucket: aws.String("newbucket"),
    })
}

Недостаточно использовать err в моем случае.

Спасибо, что уделили время.

1 Ответ

0 голосов
/ 25 сентября 2019

Я нашел путь:

    head := s3.GetObjectInput{Bucket: &bucket, Key: aws.String("a")}
    req, _ := fs.s3.GetObjectRequest(&head)
    req.Handlers.UnmarshalMeta.PushBack(func(req *request.Request) {
        defer req.HTTPResponse.Body.Close()

        //req.HTTPResponse.Header['x-amz-bucket-region']
        buf, err := ioutil.ReadAll(req.HTTPResponse.Body)
        fmt.Printf("err: %v", string(buf))
        return
    })
    req.Send()

перейдите к https://github.com/aws/aws-sdk-go/issues/542#issuecomment-180893732 для более подробной информации.

...