开启桶日志

更新时间: 2019-03-14 10:05

您可以通过ObsClient.SetBucketLoggingConfiguration开启桶日志功能。

开启桶日志 - 图1 说明:

  • 日志目标桶与源桶必须在同一个区域(region)。
  • 如果桶的存储类型为低频访问存储或归档存储,则不能作为日志目标桶。

开启桶日志

以下代码展示了如何开启桶日志:

  1. // 引入依赖包
  2. import (
  3. "fmt"
  4. "obs"
  5. )
  6.  
  7. var ak = "*** Provide your Access Key ***"
  8. var sk = "*** Provide your Secret Key ***"
  9. var endpoint = "https://your-endpoint"
  10.  
  11. // 创建ObsClient结构体
  12. var obsClient, _ = obs.New(ak, sk, endpoint)
  13.  
  14. func main() {
  15. // 设置桶的日志配置
  16. input := &obs.SetBucketLoggingConfigurationInput{}
  17. input.Bucket = "bucketname"
  18. input.TargetBucket = "targetbucketname"
  19. input.TargetPrefix = "prefix"
  20. input.Agency = "your agency"
  21. output, err := obsClient.SetBucketLoggingConfiguration(input)
  22. if err == nil {
  23. fmt.Printf("RequestId:%s\n", output.RequestId)
  24. } else if obsError, ok := err.(obs.ObsError); ok {
  25. fmt.Printf("Code:%s\n", obsError.Code)
  26. fmt.Printf("Message:%s\n", obsError.Message)
  27. }
  28. }

为日志对象设置权限

以下代码展示了如何为日志对象设置权限:

  1. // 引入依赖包
  2. import (
  3. "fmt"
  4. "obs"
  5. )
  6.  
  7. var ak = "*** Provide your Access Key ***"
  8. var sk = "*** Provide your Secret Key ***"
  9. var endpoint = "https://your-endpoint"
  10.  
  11. // 创建ObsClient结构体
  12. var obsClient, _ = obs.New(ak, sk, endpoint)
  13.  
  14. func main() {
  15. // 设置桶的日志配置
  16. input := &obs.SetBucketLoggingConfigurationInput{}
  17. input.Bucket = "bucketname"
  18. input.TargetBucket = "targetbucketname"
  19. input.TargetPrefix = "prefix"
  20. input.Agency = "your agency"
  21. output, err := obsClient.SetBucketLoggingConfiguration(input)
  22.  
  23. var grants [1]obs.Grant
  24.  
  25. // 为所有用户设置对日志对象的读权限
  26. grants[0].Grantee.Type = obs.GranteeGroup
  27. grants[0].Grantee.URI = obs.GroupAllUsers
  28. grants[0].Permission = obs.PermissionRead
  29.  
  30. input.TargetGrants = grants[:]
  31. if err == nil {
  32. fmt.Printf("RequestId:%s\n", output.RequestId)
  33. } else if obsError, ok := err.(obs.ObsError); ok {
  34. fmt.Printf("Code:%s\n", obsError.Code)
  35. fmt.Printf("Message:%s\n", obsError.Message)
  36. }
  37.  
  38. }

父主题:设置访问日志