7 "github.com/aliyun/aliyun-oss-go-sdk/oss"
10 // BucketrRequestPaymentSample shows how to set, get the bucket request payment.
11 func BucketrRequestPaymentSample() {
13 client, err := oss.New(endpoint, accessID, accessKey)
18 // Create the bucket with default parameters
19 err = client.CreateBucket(bucketName)
24 reqPayConf := oss.RequestPaymentConfiguration{
25 Payer: string(oss.Requester),
28 // Case 1: Set bucket request payment.
29 err = client.SetBucketRequestPayment(bucketName, reqPayConf)
34 // Get bucket request payment configuration
35 ret, err := client.GetBucketRequestPayment(bucketName)
39 fmt.Println("Bucket request payer:", ret.Payer)
41 if credentialUID == "" {
42 fmt.Println("Please enter a credential User ID, if you want to test credential user.")
43 clearData(client, bucketName)
46 // Credential other User
56 "Principal":["` + credentialUID + `"],
57 "Resource":["acs:oss:*:*:` + bucketName + `", "acs:oss:*:*:` + bucketName + `/*"]
62 err = client.SetBucketPolicy(bucketName, policyInfo)
67 // New a Credential client
68 creClient, err := oss.New(endpoint, credentialAccessID, credentialAccessKey)
73 // Get credential bucket
74 creBucket, err := creClient.Bucket(bucketName)
79 // Put object by credential User
80 key := "testCredentialObject"
81 objectValue := "this is a test string."
83 err = creBucket.PutObject(key, strings.NewReader(objectValue), oss.RequestPayer(oss.Requester))
88 body, err := creBucket.GetObject(key, oss.RequestPayer(oss.Requester))
94 data, err := ioutil.ReadAll(body)
98 fmt.Println(string(data))
101 err = creBucket.DeleteObject(key, oss.RequestPayer(oss.Requester))
106 clearData(client, bucketName)
109 func clearData(client *oss.Client, bucketName string) {
111 err := client.DeleteBucket(bucketName)
116 fmt.Println("BucketrRequestPaymentSample completed")