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

自定义域名绑定

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

OSS支持用户将自定义的域名绑定到OSS服务上,这样能够支持用户无缝地将存储 迁移到OSS上。例如用户的域名是my-domain.com,之前用户的所有图片资源都是 形如http://img.my-domain.com/xx.jpg的格式,用户将图片存储迁移到OSS之 后,通过绑定自定义域名,仍可以使用原来的地址访问到图片:

  • 开通OSS服务并创建Bucket
  • 将img.my-domain.com与创建的Bucket绑定
  • 将图片上传到OSS的这个Bucket中
  • 修改域名的DNS配置,增加一个CNAME记录,将img.my-domain.com指向OSS服务 的endpoint(如my-bucket.oss-cn-hangzhou.aliyuncs.com)

这样就可以通过原地址http://img.my-domain.com/x.jpg访问到存储在OSS上 的图片。 绑定自定义域名请参考自定义域名绑定

在使用SDK时,可以使用自定义域名作为endpoint,这时需要将UseCname参数 设置为true,如下面的例子:

提示:

  • 跨域资源共享的示例代码在sample/cname_sample.go
    import (
        "fmt"
        "io/ioutil"
        "strings"
        "github.com/aliyun/aliyun-oss-go-sdk/oss"
    )

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

    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }

    err = bucket.PutObject("my-object", strings.NewReader("MyObjectValue"))
    if err != nil {
        // HandleError(err)
    }

    body, err := bucket.GetObject("my-object")
    if err != nil {
        // HandleError(err)
    }
    data, err := ioutil.ReadAll(body)
    if err != nil {
        // HandleError(err)
    }
    body.Close()
    data = data  // 处理数据

    lsRes, err := bucket.ListObjects()
    if err != nil {
        // HandleError(err)
    }
    fmt.Println("Objects:", lsRes.Objects)

    err = bucket.DeleteObject("my-object")
    if err != nil {
        // HandleError(err)
    }

注意:

  • 使用Cname时,无法使用list_buckets接口。(因为自定义域名已经绑定到 某个特定的Bucket)
本文导读目录