Test Presigned Post Policy
()
| 5770 | |
| 5771 | // Test Presigned Post Policy |
| 5772 | func testPresignedPostPolicy() { |
| 5773 | // initialize logging params |
| 5774 | startTime := time.Now() |
| 5775 | testName := getFuncName() |
| 5776 | function := "PresignedPostPolicy(policy)" |
| 5777 | args := map[string]interface{}{ |
| 5778 | "policy": "", |
| 5779 | } |
| 5780 | |
| 5781 | c, err := NewClient(ClientConfig{}) |
| 5782 | if err != nil { |
| 5783 | logError(testName, function, args, startTime, "", "MinIO client object creation failed", err) |
| 5784 | return |
| 5785 | } |
| 5786 | |
| 5787 | // Generate a new random bucket name. |
| 5788 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 5789 | |
| 5790 | // Make a new bucket in 'us-east-1' (source bucket). |
| 5791 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 5792 | if err != nil { |
| 5793 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 5794 | return |
| 5795 | } |
| 5796 | |
| 5797 | defer cleanupBucket(bucketName, c) |
| 5798 | |
| 5799 | // Generate 33K of data. |
| 5800 | reader := getDataReader("datafile-33-kB") |
| 5801 | defer reader.Close() |
| 5802 | |
| 5803 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 5804 | // Azure requires the key to not start with a number |
| 5805 | metadataKey := randString(60, rand.NewSource(time.Now().UnixNano()), "user") |
| 5806 | metadataValue := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 5807 | |
| 5808 | buf, err := io.ReadAll(reader) |
| 5809 | if err != nil { |
| 5810 | logError(testName, function, args, startTime, "", "ReadAll failed", err) |
| 5811 | return |
| 5812 | } |
| 5813 | |
| 5814 | policy := minio.NewPostPolicy() |
| 5815 | policy.SetBucket(bucketName) |
| 5816 | policy.SetKey(objectName) |
| 5817 | policy.SetExpires(time.Now().UTC().AddDate(0, 0, 10)) // expires in 10 days |
| 5818 | policy.SetContentType("binary/octet-stream") |
| 5819 | policy.SetContentLengthRange(10, 1024*1024) |
| 5820 | policy.SetUserMetadata(metadataKey, metadataValue) |
| 5821 | policy.SetContentEncoding("gzip") |
| 5822 | |
| 5823 | // Add CRC32C |
| 5824 | checksum := minio.ChecksumCRC32C.ChecksumBytes(buf) |
| 5825 | err = policy.SetChecksum(checksum) |
| 5826 | if err != nil { |
| 5827 | logError(testName, function, args, startTime, "", "SetChecksum failed", err) |
| 5828 | return |
| 5829 | } |
no test coverage detected