aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go')
-rw-r--r--vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
new file mode 100644
index 0000000..0b9b0df
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
@@ -0,0 +1,57 @@
1package s3err
2
3import (
4 "fmt"
5
6 "github.com/aws/aws-sdk-go/aws/awserr"
7 "github.com/aws/aws-sdk-go/aws/request"
8)
9
10// RequestFailure provides additional S3 specific metadata for the request
11// failure.
12type RequestFailure struct {
13 awserr.RequestFailure
14
15 hostID string
16}
17
18// NewRequestFailure returns a request failure error decordated with S3
19// specific metadata.
20func NewRequestFailure(err awserr.RequestFailure, hostID string) *RequestFailure {
21 return &RequestFailure{RequestFailure: err, hostID: hostID}
22}
23
24func (r RequestFailure) Error() string {
25 extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
26 r.StatusCode(), r.RequestID(), r.hostID)
27 return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
28}
29func (r RequestFailure) String() string {
30 return r.Error()
31}
32
33// HostID returns the HostID request response value.
34func (r RequestFailure) HostID() string {
35 return r.hostID
36}
37
38// RequestFailureWrapperHandler returns a handler to rap an
39// awserr.RequestFailure with the S3 request ID 2 from the response.
40func RequestFailureWrapperHandler() request.NamedHandler {
41 return request.NamedHandler{
42 Name: "awssdk.s3.errorHandler",
43 Fn: func(req *request.Request) {
44 reqErr, ok := req.Error.(awserr.RequestFailure)
45 if !ok || reqErr == nil {
46 return
47 }
48
49 hostID := req.HTTPResponse.Header.Get("X-Amz-Id-2")
50 if req.Error == nil {
51 return
52 }
53
54 req.Error = NewRequestFailure(reqErr, hostID)
55 },
56 }
57}