OSS はカスタムドメイン名を OSS にバインドすることをサポートしているため、データストレージを OSS にシームレスに移行できます。たとえば、ドメイン名は my-domain.com で、以前のすべてのイメージリソースは http://img.my-domain.com/x.jpg と似た形式です。イメージストレージを OSS に移行した後、カスタムドメイン名を OSS にバインドすることで、元のアドレスのイメージにアクセスすることができます:
- OSS サービスを有効にしてバケットを作成
- 作成したバケットに img.my-domain.com をバインド
- 作成されたバケットに画像をアップロード
- DNS 設定を変更し、CNAME レコードを追加し、img.my-domain.com を OSS のエンドポイント(たとえば、my-bucket.oss-cn-hangzhou.aliyuncs.com) に転送
上記の手順で、元のアドレス`http://img.my-domain.com/xx.jpg`を使用して OSS 上の画像をアクセスできます。
カスタムドメイン名のバインド方法の詳細については、カスタムアドオンドメイン/バーチャルホスティング (CNAME) を参照してください。
SDK はエンドポイントとして CNAME の使用をサポートしています。これを行うには、’UseCname’ パラメーターを ‘true’ に設定する必要があります。以下に例を示します:
説明
メモ: sample/cname_sample.go に CORES の例のコードがあります。
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 // Process 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’ インターフェイスは使用できません。(カスタムドメイン名は特定のバケットにバインドされているためです)。