OSS支持用户将自定义的域名绑定到OSS服务上,这样能够支持用户无缝地将存储 迁移到OSS上。例如用户的域名是my-domain.com,之前用户的所有图片资源都是 形如
的格式,用户将图片存储迁移到OSS之 后,通过绑定自定义域名,仍可以使用原来的地址访问到图片:
提示:
- 跨域资源共享的示例代码在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)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您已经详细描述了如何在阿里云对象存储(OSS)上绑定自定义域名并使用SDK进行操作的过程。这里我再简要概括一下关键步骤,并补充一些可能需要的注意事项和建议:
开通OSS服务并创建Bucket:首先,您需要登录阿里云控制台,开通OSS服务并创建一个新的Bucket来存放您的资源。
绑定自定义域名:在OSS管理控制台中,找到“域名管理”或类似选项,将您的自定义域名(如img.my-domain.com
)与刚创建的Bucket绑定。这一步骤会生成一个需要添加到您DNS记录中的CNAME目标地址。
修改DNS配置:登录您的域名提供商后台,为您的自定义域名添加一条CNAME记录,指向OSS提供的Endpoint地址(例如my-bucket.oss-cn-hangzhou.aliyuncs.com
)。注意,DNS更新可能需要一定时间才能生效。
使用SDK上传和访问文件:在代码中,当使用OSS SDK时,通过设置UseCname(true)
参数来指示SDK使用自定义域名作为访问点。示例代码您已提供,展示了如何上传、下载、列出及删除对象。
跨域资源共享(CORS):如果您需要从不同源访问这些资源,别忘了在OSS Bucket的属性设置中配置CORS规则,以允许跨域请求。
注意事项:
按照上述步骤操作,您可以无缝地将原有资源迁移至OSS,并继续使用原有的访问路径,同时享受到OSS带来的高可用、低成本和大规模数据存储能力。