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

Function testPutObjectWithVersioning

functional_tests.go:1026–1157  ·  functional_tests.go::testPutObjectWithVersioning
()

Source from the content-addressed store, hash-verified

1024}
1025
1026func 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 {

Callers 1

mainFunction · 0.85

Calls 15

MakeBucketMethod · 0.95
EnableVersioningMethod · 0.95
PutObjectMethod · 0.95
ListObjectsMethod · 0.95
GetObjectMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
newRandomReaderFunction · 0.85
cleanupVersionedBucketFunction · 0.85
logSuccessFunction · 0.85
StatMethod · 0.80

Tested by

no test coverage detected