prepareStreamingRequest - prepares a request with appropriate headers before computing the seed signature.
(req *http.Request, sessionToken string, dataLen int64, timestamp time.Time)
| 124 | // prepareStreamingRequest - prepares a request with appropriate |
| 125 | // headers before computing the seed signature. |
| 126 | func prepareStreamingRequest(req *http.Request, sessionToken string, dataLen int64, timestamp time.Time) { |
| 127 | // Set x-amz-content-sha256 header. |
| 128 | if len(req.Trailer) == 0 { |
| 129 | req.Header.Set("X-Amz-Content-Sha256", streamingSignAlgorithm) |
| 130 | } else { |
| 131 | req.Header.Set("X-Amz-Content-Sha256", streamingSignTrailerAlgorithm) |
| 132 | for k := range req.Trailer { |
| 133 | req.Header.Add("X-Amz-Trailer", strings.ToLower(k)) |
| 134 | } |
| 135 | req.TransferEncoding = []string{"aws-chunked"} |
| 136 | } |
| 137 | |
| 138 | if sessionToken != "" { |
| 139 | req.Header.Set("X-Amz-Security-Token", sessionToken) |
| 140 | } |
| 141 | |
| 142 | req.Header.Set("X-Amz-Date", timestamp.Format(iso8601DateFormat)) |
| 143 | // Set content length with streaming signature for each chunk included. |
| 144 | req.ContentLength = getStreamLength(dataLen, int64(payloadChunkSize), req.Trailer) |
| 145 | req.Header.Set("x-amz-decoded-content-length", strconv.FormatInt(dataLen, 10)) |
| 146 | } |
| 147 | |
| 148 | // buildChunkHeader - returns the chunk header. |
| 149 | // e.g string(IntHexBase(chunk-size)) + ";chunk-signature=" + signature + \r\n + chunk-data + \r\n |
no test coverage detected