MCPcopy
hub / github.com/minio/minio-go / prepareStreamingRequest

Function prepareStreamingRequest

pkg/signer/request-signature-streaming.go:126–146  ·  view source on GitHub ↗

prepareStreamingRequest - prepares a request with appropriate headers before computing the seed signature.

(req *http.Request, sessionToken string, dataLen int64, timestamp time.Time)

Source from the content-addressed store, hash-verified

124// prepareStreamingRequest - prepares a request with appropriate
125// headers before computing the seed signature.
126func 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

Callers 3

StreamingSignV4ExpressFunction · 0.85
StreamingSignV4Function · 0.85
StreamingSignV4OutpostsFunction · 0.85

Calls 3

getStreamLengthFunction · 0.85
SetMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected