您可以开启存储空间的访问日志记录功能。开启后对于此存储空间的访问会被记录成日志文件,保存在指定的存储空间中。

日志文件的格式为:

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

更多关于访问日志的介绍,请参见开发指南中的设置访问日志记录。访问日志的完整代码请参见GitHub

开启访问日志记录

以下代码用于开启存储空间的访问日志记录:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 创建OSSClient实例。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. targetBucketName := "<yourTargetBucketName>"
  16. targetPrefix := "<yourTargetPrefix>"
  17. // 开启存储空间的访问日志记录。targetBucketName为存放日志文件的存储空间,targetPrefix为被保存的访问日志文件前缀,即日志文件存放的目录。
  18. err = client.SetBucketLogging(bucketName, targetBucketName, targetPrefix, true)
  19. if err != nil {
  20. fmt.Println("Error:", err)
  21. os.Exit(-1)
  22. }
  23. }

查看访问日志设置

以下代码用于查看存储空间的访问日志设置:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 创建OSSClient实例。
  9. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. // 查看存储空间的访问日志设置。
  16. logRes, err := client.GetBucketLogging(bucketName)
  17. if err != nil {
  18. fmt.Println("Error:", err)
  19. os.Exit(-1)
  20. }
  21. fmt.Println("Target Bucket: ", logRes.LoggingEnabled.TargetBucket)
  22. fmt.Println("Target Prefix: ", logRes.LoggingEnabled.TargetPrefix)
  23. }

关闭访问日志记录

以下代码用于关闭存储空间的访问日志记录:

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/aliyun/aliyun-oss-go-sdk/oss"
  6. )
  7. func main() {
  8. // 创建OSSClient实例。
  9. // client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  10. if err != nil {
  11. fmt.Println("Error:", err)
  12. os.Exit(-1)
  13. }
  14. bucketName := "<yourBucketName>"
  15. // 关闭访问日志记录。
  16. err = client.DeleteBucketLogging(bucketName)
  17. if err != nil {
  18. fmt.Println("Error:", err)
  19. os.Exit(-1)
  20. }
  21. }