()
| 1024 | } |
| 1025 | |
| 1026 | func testPutObjectWithVersioning() { |
| 1027 | // initialize logging params |
| 1028 | startTime := time.Now() |
| 1029 | testName := getFuncName() |
| 1030 | function := "GetObject()" |
| 1031 | args := map[string]interface{}{} |
| 1032 | |
| 1033 | c, err := NewClient(ClientConfig{}) |
| 1034 | if err != nil { |
| 1035 | logError(testName, function, args, startTime, "", "MinIO client object creation failed", err) |
| 1036 | return |
| 1037 | } |
| 1038 | |
| 1039 | // Generate a new random bucket name. |
| 1040 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 1041 | args["bucketName"] = bucketName |
| 1042 | |
| 1043 | // Make a new bucket. |
| 1044 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1", ObjectLocking: true}) |
| 1045 | if err != nil { |
| 1046 | logError(testName, function, args, startTime, "", "Make bucket failed", err) |
| 1047 | return |
| 1048 | } |
| 1049 | |
| 1050 | err = c.EnableVersioning(context.Background(), bucketName) |
| 1051 | if err != nil { |
| 1052 | logError(testName, function, args, startTime, "", "Enable versioning failed", err) |
| 1053 | return |
| 1054 | } |
| 1055 | |
| 1056 | objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "") |
| 1057 | args["objectName"] = objectName |
| 1058 | |
| 1059 | const n = 10 |
| 1060 | // Read input... |
| 1061 | |
| 1062 | // Save the data concurrently. |
| 1063 | var wg sync.WaitGroup |
| 1064 | wg.Add(n) |
| 1065 | buffers := make([][]byte, n) |
| 1066 | var errs [n]error |
| 1067 | for i := 0; i < n; i++ { |
| 1068 | r := newRandomReader(int64((1<<20)*i+i), int64(i)) |
| 1069 | buf, err := io.ReadAll(r) |
| 1070 | if err != nil { |
| 1071 | logError(testName, function, args, startTime, "", "unexpected failure", err) |
| 1072 | return |
| 1073 | } |
| 1074 | buffers[i] = buf |
| 1075 | |
| 1076 | go func(i int) { |
| 1077 | defer wg.Done() |
| 1078 | _, errs[i] = c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{PartSize: 5 << 20}) |
| 1079 | }(i) |
| 1080 | } |
| 1081 | wg.Wait() |
| 1082 | for _, err := range errs { |
| 1083 | if err != nil { |
no test coverage detected