设置跨域规则

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

您可以通过ObsClient.SetBucketCors设置桶的跨域规则,如果原规则存在则覆盖原规则。以下代码展示了如何设置跨域规则:

  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. input := &obs.SetBucketCorsInput{}
  16. input.Bucket = "bucketname"
  17. corsRule0 := obs.CorsRule{}
  18. corsRule0.ID = "rule1"
  19. // 指定允许跨域请求的来源
  20. corsRule0.AllowedOrigin = []string{"http://www.a.com", "http://www.b.com"}
  21. // 指定允许的跨域请求方法(GET/PUT/DELETE/POST/HEAD)
  22. corsRule0.AllowedMethod = []string{"GET", "PUT", "DELETE", "POST", "HEAD"}
  23. // 控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否被允许使用
  24. corsRule0.AllowedHeader = []string{"header1", "header2"}
  25. // 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒
  26. corsRule0.MaxAgeSeconds = 100
  27. // 指定允许用户从应用程序中访问的header
  28. corsRule0.ExposeHeader = []string{"x-obs-expose-header"}
  29. input.CorsRules = []obs.CorsRule{corsRule0}
  30. output, err := obsClient.SetBucketCors(input)
  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. }

设置跨域规则 - 图1 说明:

AllowedOrigin、AllowedHeader都能够最多支持一个“”通配符。“”表示对于所有的域来源或者头域都满足。

父主题:跨域资源共享