Skip to content

Commit

Permalink
Add mint PostObject checksum (#1827)
Browse files Browse the repository at this point in the history
  • Loading branch information
klauspost committed Jun 2, 2023
1 parent d58e1a3 commit 323fef2
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions functional_tests.go
Expand Up @@ -4821,6 +4821,11 @@ func testPresignedPostPolicy() {
policy.SetContentType("binary/octet-stream")
policy.SetContentLengthRange(10, 1024*1024)
policy.SetUserMetadata(metadataKey, metadataValue)

// Add CRC32C
checksum := minio.ChecksumCRC32C.ChecksumBytes(buf)
policy.SetChecksum(checksum)

args["policy"] = policy.String()

presignedPostPolicyURL, formData, err := c.PresignedPostPolicy(context.Background(), policy)
Expand Down Expand Up @@ -4888,6 +4893,7 @@ func testPresignedPostPolicy() {
Timeout: 30 * time.Second,
Transport: transport,
}
args["url"] = presignedPostPolicyURL.String()

req, err := http.NewRequest(http.MethodPost, presignedPostPolicyURL.String(), bytes.NewReader(formBuf.Bytes()))
if err != nil {
Expand Down Expand Up @@ -4920,13 +4926,21 @@ func testPresignedPostPolicy() {
expectedLocation := scheme + os.Getenv(serverEndpoint) + "/" + bucketName + "/" + objectName
expectedLocationBucketDNS := scheme + bucketName + "." + os.Getenv(serverEndpoint) + "/" + objectName

if val, ok := res.Header["Location"]; ok {
if val[0] != expectedLocation && val[0] != expectedLocationBucketDNS {
logError(testName, function, args, startTime, "", "Location in header response is incorrect", err)
if !strings.Contains(expectedLocation, "s3.amazonaws.com/") {
// Test when not against AWS S3.
if val, ok := res.Header["Location"]; ok {
if val[0] != expectedLocation && val[0] != expectedLocationBucketDNS {
logError(testName, function, args, startTime, "", fmt.Sprintf("Location in header response is incorrect. Want %q or %q, got %q", expectedLocation, expectedLocationBucketDNS, val[0]), err)
return
}
} else {
logError(testName, function, args, startTime, "", "Location not found in header response", err)
return
}
} else {
logError(testName, function, args, startTime, "", "Location not found in header response", err)
}
want := checksum.Encoded()
if got := res.Header.Get("X-Amz-Checksum-Crc32c"); got != want {
logError(testName, function, args, startTime, "", fmt.Sprintf("Want checksum %q, got %q", want, got), nil)
return
}

Expand Down

0 comments on commit 323fef2

Please sign in to comment.