--- /dev/null
+package sample
+
+import (
+ "fmt"
+
+ "github.com/aliyun/aliyun-oss-go-sdk/oss"
+)
+
+// BucketPolicySample shows how to set, get and delete the bucket policy configuration
+func BucketPolicySample() {
+ // New client
+ client, err := oss.New(endpoint, accessID, accessKey)
+ if err != nil {
+ HandleError(err)
+ }
+
+ // Create the bucket with default parameters
+ err = client.CreateBucket(bucketName)
+ if err != nil {
+ HandleError(err)
+ }
+
+ // the policy string
+ var policyInfo string
+ policyInfo = `
+ {
+ "Version":"1",
+ "Statement":[
+ {
+ "Action":[
+ "oss:GetObject",
+ "oss:PutObject"
+ ],
+ "Effect":"Deny",
+ "Principal":"[123456790]",
+ "Resource":["acs:oss:*:1234567890:*/*"]
+ }
+ ]
+ }`
+
+ // Set policy
+ err = client.SetBucketPolicy(bucketName, policyInfo)
+ if err != nil {
+ HandleError(err)
+ }
+
+ // Get Bucket policy
+ ret, err := client.GetBucketPolicy(bucketName)
+ if err != nil {
+ HandleError(err)
+ }
+ fmt.Println("Bucket policy:", ret)
+
+ // Delete Bucket policy
+ err = client.DeleteBucketPolicy(bucketName)
+ if err != nil {
+ HandleError(err)
+ }
+
+ // Delete bucket
+ err = client.DeleteBucket(bucketName)
+ if err != nil {
+ HandleError(err)
+ }
+
+ fmt.Println("BucketPolicySample completed")
+}