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

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // BucketPolicySample shows how to set, get and delete the bucket policy configuration
    10  func BucketPolicySample() {
    11  	// New client
    12  	client, err := oss.New(endpoint, accessID, accessKey)
    13  	if err != nil {
    14  		HandleError(err)
    15  	}
    16  
    17  	// Create the bucket with default parameters
    18  	err = client.CreateBucket(bucketName)
    19  	if err != nil {
    20  		HandleError(err)
    21  	}
    22  
    23  	// the policy string
    24  	var policyInfo string
    25  	policyInfo = `
    26  	{
    27  		"Version":"1",
    28  		"Statement":[
    29  			{
    30  				"Action":[
    31  					"oss:GetObject",
    32  					"oss:PutObject"
    33  				],
    34  				"Effect":"Deny",
    35  				"Principal":"[123456790]",
    36  				"Resource":["acs:oss:*:1234567890:*/*"]
    37  			}
    38  		]
    39  	}`
    40  
    41  	// Set policy
    42  	err = client.SetBucketPolicy(bucketName, policyInfo)
    43  	if err != nil {
    44  		HandleError(err)
    45  	}
    46  
    47  	// Get Bucket policy
    48  	ret, err := client.GetBucketPolicy(bucketName)
    49  	if err != nil {
    50  		HandleError(err)
    51  	}
    52  	fmt.Println("Bucket policy:", ret)
    53  
    54  	// Delete Bucket policy
    55  	err = client.DeleteBucketPolicy(bucketName)
    56  	if err != nil {
    57  		HandleError(err)
    58  	}
    59  
    60  	// Delete bucket
    61  	err = client.DeleteBucket(bucketName)
    62  	if err != nil {
    63  		HandleError(err)
    64  	}
    65  
    66  	fmt.Println("BucketPolicySample completed")
    67  }