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

Function StreamingSignV4Outposts

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

StreamingSignV4Outposts - provides chunked upload signatureV4 support for S3 on Outposts (service name s3-outposts).

(req *http.Request, accessKeyID, secretAccessKey, sessionToken,
	region string, dataLen int64, reqTime time.Time, sh256 md5simd.Hasher,
)

Source from the content-addressed store, hash-verified

394
395// StreamingSignV4Outposts - provides chunked upload signatureV4 support for S3 on Outposts (service name s3-outposts).
396func StreamingSignV4Outposts(req *http.Request, accessKeyID, secretAccessKey, sessionToken,
397 region string, dataLen int64, reqTime time.Time, sh256 md5simd.Hasher,
398) *http.Request {
399 prepareStreamingRequest(req, sessionToken, dataLen, reqTime)
400 if req.Body == nil {
401 req.Body = io.NopCloser(bytes.NewReader([]byte("")))
402 }
403 stReader := &StreamingReader{
404 baseReadCloser: req.Body,
405 accessKeyID: accessKeyID,
406 secretAccessKey: secretAccessKey,
407 sessionToken: sessionToken,
408 region: region,
409 serviceType: ServiceTypeS3Outposts,
410 reqTime: reqTime,
411 chunkBuf: make([]byte, payloadChunkSize),
412 contentLen: dataLen,
413 chunkNum: 1,
414 totalChunks: int((dataLen+payloadChunkSize-1)/payloadChunkSize) + 1,
415 lastChunkSize: int(dataLen % payloadChunkSize),
416 sh256: sh256,
417 }
418 if len(req.Trailer) > 0 {
419 stReader.trailer = req.Trailer
420 req.Trailer = nil
421 }
422 stReader.setSeedSignature(req)
423 stReader.setStreamingAuthHeader(req, ServiceTypeS3Outposts)
424 stReader.prevSignature = stReader.seedSignature
425 req.Body = stReader
426 return req
427}
428
429// Read - this method performs chunk upload signature providing a
430// io.Reader interface.

Callers 1

newRequestMethod · 0.92

Calls 3

setSeedSignatureMethod · 0.95
prepareStreamingRequestFunction · 0.85

Tested by

no test coverage detected