CORS を使用すると、Web アプリケーションから他のドメインのリソースにアクセスできます。OSS のインターフェイスを使用して、開発者はクロスオリジンアクセス権限を簡単に制御できます。CORSのの詳細はクロスオリジンアクセス設定をご参照ください。
OSS CORS 設定は一つ以上の CORS ルールを含んでいます。それぞれの CORS ルールは以下のパラメータが含まれます:
- allowed_origins: クロスオリジン要求を許可するオリジンです。例:
www.my-domain.com, *
- allowed_methods: クロスオリジン要求に対する HTTP メソッド(PUT/POST/GET/DELETE/HEAD) を許可します。
- allowed_headers: ヘッダーの事前取得コマンド(オプション)を許可します。例:
x-oss-test, *
- expose_headers: ヘッダーは、アプリケーション内のユーザアクセスを許可します。
- max_age_seconds: 特定のリソースのためのブラウザ事前取得(オプション)要求の戻り値のキャッシュ時間です。
メモ: sample/bucket_cors.go に CORS の例のコードがあります。
CORS ルールの設定
CORS ルールの設定は、Client.SetBucketCORS
を使用します:
import "github.com/aliyun/aliyun-oss-go-sdk/oss"
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
rule1 := oss.CORSRule{
AllowedOrigin: []string{"*"},
AllowedMethod: []string{"PUT", "GET"},
AllowedHeader: []string{},
ExposeHeader: []string{},
MaxAgeSeconds: 200,
}
rule2 := oss.CORSRule{
AllowedOrigin: []string{"http://www.a.com", "http://www.b.com"},
AllowedMethod: []string{"POST"},
AllowedHeader: []string{"Authorization"},
ExposeHeader: []string{"x-oss-test", "x-oss-test1"},
MaxAgeSeconds: 100,
}
err = client.SetBucketCORS("my-bucket", []oss.CORSRule{rule1, rule2})
if err != nil {
// HandleError(err)
}
CORS ルールの表示
CORS ルールの表示は、Client.GetBucketCORS
を使用します:
import "fmt"
import "github.com/aliyun/aliyun-oss-go-sdk/oss"
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
corsRes, err := client.GetBucketCORS("my-bucket")
if err != nil {
// HandleError(err)
}
fmt.Println("Bucket CORS:", corsRes.CORSRules)
CORS ルールの削除
CORS ルールの削除は、Client.DeleteBucketCORS
を使用します:
import "github.com/aliyun/aliyun-oss-go-sdk/oss"
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.DeleteBucketCORS("my-bucket")
if err != nil {
// HandleError(err)
}