您可以开启存储空间的访问日志记录功能。开启后对于此存储空间的访问会被记录成日志文件,保存在指定的存储空间中。
日志文件的格式为:
<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() {
// 创建OSSClient实例。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
targetBucketName := "<yourTargetBucketName>"
targetPrefix := "<yourTargetPrefix>"
// 开启存储空间的访问日志记录。targetBucketName为存放日志文件的存储空间,targetPrefix为被保存的访问日志文件前缀,即日志文件存放的目录。
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() {
// 创建OSSClient实例。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
// 查看存储空间的访问日志设置。
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() {
// 创建OSSClient实例。
// client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
// 关闭访问日志记录。
err = client.DeleteBucketLogging(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}