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

Function testUserMetadataCopyingWrapper

functional_tests.go:11764–11916  ·  view source on GitHub ↗
(c *minio.Client)

Source from the content-addressed store, hash-verified

11762}
11763
11764func testUserMetadataCopyingWrapper(c *minio.Client) {
11765 // initialize logging params
11766 startTime := time.Now()
11767 testName := getFuncName()
11768 function := "CopyObject(destination, source)"
11769 args := map[string]interface{}{}
11770
11771 // Generate a new random bucket name.
11772 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
11773 // Make a new bucket in 'us-east-1' (source bucket).
11774 err := c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
11775 if err != nil {
11776 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
11777 return
11778 }
11779
11780 defer cleanupBucket(bucketName, c)
11781
11782 fetchMeta := func(object string) (h http.Header) {
11783 objInfo, err := c.StatObject(context.Background(), bucketName, object, minio.StatObjectOptions{})
11784 if err != nil {
11785 logError(testName, function, args, startTime, "", "Stat failed", err)
11786 return h
11787 }
11788 h = make(http.Header)
11789 for k, vs := range objInfo.Metadata {
11790 if strings.HasPrefix(strings.ToLower(k), "x-amz-meta-") {
11791 h.Add(k, vs[0])
11792 }
11793 }
11794 return h
11795 }
11796
11797 // 1. create a client encrypted object to copy by uploading
11798 const srcSize = 1024 * 1024
11799 buf := bytes.Repeat([]byte("abcde"), srcSize) // gives a buffer of 5MiB
11800 metadata := make(http.Header)
11801 metadata.Set("x-amz-meta-myheader", "myvalue")
11802 m := make(map[string]string)
11803 m["x-amz-meta-myheader"] = "myvalue"
11804 _, err = c.PutObject(context.Background(), bucketName, "srcObject",
11805 bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{UserMetadata: m})
11806 if err != nil {
11807 logError(testName, function, args, startTime, "", "PutObjectWithMetadata failed", err)
11808 return
11809 }
11810 if !reflect.DeepEqual(metadata, fetchMeta("srcObject")) {
11811 logError(testName, function, args, startTime, "", "Metadata match failed", err)
11812 return
11813 }
11814
11815 // 2. create source
11816 src := minio.CopySrcOptions{
11817 Bucket: bucketName,
11818 Object: "srcObject",
11819 }
11820
11821 // 2.1 create destination with metadata set

Callers 2

testUserMetadataCopyingFunction · 0.85

Calls 12

getFuncNameFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
logSuccessFunction · 0.85
MakeBucketMethod · 0.80
StatObjectMethod · 0.80
ComposeObjectMethod · 0.80
randStringFunction · 0.70
AddMethod · 0.45
SetMethod · 0.45
PutObjectMethod · 0.45
CopyObjectMethod · 0.45

Tested by

no test coverage detected