アクセスログを有効にして、指定したバケットに保存されているログファイルへのバケットアクセスを記録します。

ログファイルの形式は次のとおりです。

<TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString

アクセスログファイルの詳細については、「アクセスログの設定」をご参照ください。 ログ設定の完全なコードについては、『GitHub』をご参照ください。

アクセスログの有効化

次のコードを実行してバケットアクセスログを有効にします。

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Create an OSSClient instance.
	client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucketName := "<yourBucketName>"
	targetBucketName := "<yourTargetBucketName>"
	targetPrefix := "<yourTargetPrefix>"

	// Enable access logging for a bucket. targetBucketName is the bucket that logs are stored, targetPrefix is the prefix of the stored log files, that is, the path of the log files.
	err = client.SetBucketLogging(bucketName, targetBucketName, targetPrefix, true)
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

アクセスログ設定の表示

次のコードを実行して、バケットのアクセスログ設定を表示します。

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Create an OSSClient instance.
	client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucketName := "<yourBucketName>"

	// View the access logging configurations for a bucket.
	logRes, err := client.GetBucketLogging(bucketName)
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println("Target Bucket: ", logRes.LoggingEnabled.TargetBucket)
	fmt.Println("Target Prefix: ", logRes.LoggingEnabled.TargetPrefix)
}

アクセスログの無効化

次のコードを実行して、バケットのアクセスログを無効にします。

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Create an OSSClient instance.
	// client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucketName := "<yourBucketName>"

	// Disable access logging.
	err = client.DeleteBucketLogging(bucketName)
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}