全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

设置防盗链

更新时间:2017-06-07 13:26:11

OSS是按使用收费的服务,为了防止用户在OSS上的数据被其他人盗链,OSS支持 基于HTTP header中表头字段referer的防盗链方法。更多OSS防盗链请参考: OSS 防盗链

提示:

  • 设置防盗链的示例代码在sample/bucket_referer.go

设置Referer白名单

通过Bucket.SetBucketReferer设置Referer白名单,该函数有三个参数:

  • bucketName 存储空间名称。
  • referers 访问白名单列表。一个bucket可以支持多个referer参数。eferer参数支持通配符"*"和"?"。
  • allowEmptyReferer 指定是否允许referer字段为空的请求访问。默认配置为true。
    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    referers := []string{"http://www.aliyun.com",
                         "http://www.???.aliyuncs.com",
                         "http://www.*.com"}
    err = client.SetBucketReferer("my-bucket", referers, false)
    if err != nil {
        // HandleError(err)
    }

查看Referer白名单

通过Bucket.GetBucketReferer设置Referer白名单:

    import "fmt"
    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    refRes, err := client.GetBucketReferer("my-bucket")
    if err != nil {
        // HandleError(err)
    }
    fmt.Println("Referers:", refRes.RefererList,
                "AllowEmptyReferer:", refRes.AllowEmptyReferer)

清空Referer白名单

清空Referer白名单,即把白名单设置成空,allowEmptyReferer为true:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    err = client.SetBucketReferer("my-bucket", []string{}, true)
    if err != nil {
        // HandleError(err)
    }
本文导读目录