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

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // BucketLoggingSample shows how to set, get and delete the bucket logging configuration
    10  func BucketLoggingSample() {
    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  	// Create target bucket to store the logging files.
    23  	var targetBucketName = "target-bucket"
    24  	err = client.CreateBucket(targetBucketName)
    25  	if err != nil {
    26  		HandleError(err)
    27  	}
    28  
    29  	// Case 1: Set the logging for the object prefixed with "prefix-1" and save their access logs to the target bucket
    30  	err = client.SetBucketLogging(bucketName, targetBucketName, "prefix-1", true)
    31  	if err != nil {
    32  		HandleError(err)
    33  	}
    34  
    35  	// Case 2: Set the logging for the object prefixed with "prefix-2" and save their logs to the same bucket
    36  	// Note: the rule will overwrite other rules if they have same bucket and prefix
    37  	err = client.SetBucketLogging(bucketName, bucketName, "prefix-2", true)
    38  	if err != nil {
    39  		HandleError(err)
    40  	}
    41  
    42  	// Delete the bucket's logging configuration
    43  	err = client.DeleteBucketLogging(bucketName)
    44  	if err != nil {
    45  		HandleError(err)
    46  	}
    47  
    48  	// Case 3: Set the logging without enabling it
    49  	err = client.SetBucketLogging(bucketName, targetBucketName, "prefix-3", false)
    50  	if err != nil {
    51  		HandleError(err)
    52  	}
    53  
    54  	// Get the bucket's logging configuration
    55  	gbl, err := client.GetBucketLogging(bucketName)
    56  	if err != nil {
    57  		HandleError(err)
    58  	}
    59  	fmt.Println("Bucket Logging:", gbl.LoggingEnabled)
    60  
    61  	err = client.SetBucketLogging(bucketName, bucketName, "prefix2", true)
    62  	if err != nil {
    63  		HandleError(err)
    64  	}
    65  
    66  	// Get the bucket's logging configuration
    67  	gbl, err = client.GetBucketLogging(bucketName)
    68  	if err != nil {
    69  		HandleError(err)
    70  	}
    71  	fmt.Println("Bucket Logging:", gbl.LoggingEnabled)
    72  
    73  	// Delete the bucket's logging configuration
    74  	err = client.DeleteBucketLogging(bucketName)
    75  	if err != nil {
    76  		HandleError(err)
    77  	}
    78  
    79  	// Delete bucket
    80  	err = client.DeleteBucket(bucketName)
    81  	if err != nil {
    82  		HandleError(err)
    83  	}
    84  	err = client.DeleteBucket(targetBucketName)
    85  	if err != nil {
    86  		HandleError(err)
    87  	}
    88  
    89  	fmt.Println("BucketLoggingSample completed")
    90  }