设置跨域规则
更新时间: 2019-03-14 10:05
您可以通过ObsClient.SetBucketCors设置桶的跨域规则,如果原规则存在则覆盖原规则。以下代码展示了如何设置跨域规则:
- // 引入依赖包
- import (
- "fmt"
- "obs"
- )
- var ak = "*** Provide your Access Key ***"
- var sk = "*** Provide your Secret Key ***"
- var endpoint = "https://your-endpoint"
- // 创建ObsClient结构体
- var obsClient, _ = obs.New(ak, sk, endpoint)
- func main() {
- input := &obs.SetBucketCorsInput{}
- input.Bucket = "bucketname"
- corsRule0 := obs.CorsRule{}
- corsRule0.ID = "rule1"
- // 指定允许跨域请求的来源
- corsRule0.AllowedOrigin = []string{"http://www.a.com", "http://www.b.com"}
- // 指定允许的跨域请求方法(GET/PUT/DELETE/POST/HEAD)
- corsRule0.AllowedMethod = []string{"GET", "PUT", "DELETE", "POST", "HEAD"}
- // 控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否被允许使用
- corsRule0.AllowedHeader = []string{"header1", "header2"}
- // 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,单位为秒
- corsRule0.MaxAgeSeconds = 100
- // 指定允许用户从应用程序中访问的header
- corsRule0.ExposeHeader = []string{"x-obs-expose-header"}
- input.CorsRules = []obs.CorsRule{corsRule0}
- output, err := obsClient.SetBucketCors(input)
- if err == nil {
- fmt.Printf("RequestId:%s\n", output.RequestId)
- } else if obsError, ok := err.(obs.ObsError); ok {
- fmt.Printf("Code:%s\n", obsError.Code)
- fmt.Printf("Message:%s\n", obsError.Message)
- }
- }
说明:
AllowedOrigin、AllowedHeader都能够最多支持一个“”通配符。“”表示对于所有的域来源或者头域都满足。
父主题:跨域资源共享