文档首页 > > SDK参考> Go> 跨域资源共享> 设置跨域规则

设置跨域规则

分享
更新时间: 2019/04/22 GMT+08:00

您可以通过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都能够最多支持一个“*”通配符。“*”表示对于所有的域来源或者头域都满足。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区