github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/object_acl.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     8  )
     9  
    10  // ObjectACLSample shows how to set and get object ACL
    11  func ObjectACLSample() {
    12  	// Create bucket
    13  	bucket, err := GetTestBucket(bucketName)
    14  	if err != nil {
    15  		HandleError(err)
    16  	}
    17  
    18  	// Create object
    19  	err = bucket.PutObject(objectKey, strings.NewReader("YoursObjectValue"))
    20  	if err != nil {
    21  		HandleError(err)
    22  	}
    23  
    24  	// Case 1: Set bucket ACL, valid ACLs are ACLPrivate、ACLPublicRead、ACLPublicReadWrite
    25  	err = bucket.SetObjectACL(objectKey, oss.ACLPrivate)
    26  	if err != nil {
    27  		HandleError(err)
    28  	}
    29  
    30  	// Get object ACL, returns one of the three values: private、public-read、public-read-write
    31  	goar, err := bucket.GetObjectACL(objectKey)
    32  	if err != nil {
    33  		HandleError(err)
    34  	}
    35  	fmt.Println("Object ACL:", goar.ACL)
    36  
    37  	// Delete object and bucket
    38  	err = DeleteTestBucketAndObject(bucketName)
    39  	if err != nil {
    40  		HandleError(err)
    41  	}
    42  
    43  	fmt.Println("ObjectACLSample completed")
    44  }