CORS を使って Web アプリケーションから他のオリジンのリソースにアクセスできます。OSS のインターフェイスを使用して、開発者はクロスオリジンアクセス権限を簡単に制御できます。
CORS ルールの設定
setBucketCORS メソッドを使用して、指定されたバケットに対して CORS ルールを設定できます。元のルールが存在する場合は上書きされます。通常、特定のルールのパラメーターは CORSRule クラスを通じて設定されます。コードは次のとおりです。
using Aliyun.OSS;
// Initialize OSSClient
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var req = new SetBucketCorsRequest(bucketName);
var r1 = new CORSRule();
//Specify the allowed source of cross-origin requests
r1.AddAllowedOrigin("http://www.a.com");
//Specify the allowed cross-origin request methods (GET/PUT/DELETE/POST/HEAD)
r1.AddAllowedMethod("POST");
//Control whether the headers specified by Access-Control-Request-Headers in the OPTIONS' prefetch command are allowed.
r1.AddAllowedHeader("*");
//Specify the response headers users are allowed to access from the application
r1.AddExposeHeader("x-oss-test");
req.AddCORSRule(r1);
client.SetBucketCors(req);
上記のソースコードは以下の場所で入手できます: GitHub
注意:
バケットごとに最大 10 のルールが許可されます。
AllowedOrigins と AllowedMethods ではそれぞれ 1 つの “*“ ワイルドカードのみ使用できます。”*“ は、すべてのオリジンまたはメソッドが許可されることを意味します。
AllowedHeaders と ExposeHeaders はワイルドカードをサポートしません。
CORS ルールの取得
GetBucketCORSRules メソッドを使用してバケットの CORS ルールを参照できます。コードは次のとおりです。
using Aliyun.OSS;
// Initialize an OSSClient
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var rules = client.GetBucketCors(bucketName);
foreach (var rule in rules)
{
Console.WriteLine("AllowedOrigins:{0}", rule.AllowedOrigins);
Console.WriteLine("AllowedMethods:{0}", rule.AllowedMethods);
Console.WriteLine("AllowedHeaders:{0}", rule.AllowedHeaders);
Console.WriteLine("ExposeHeaders:{0}", rule.ExposeHeaders);
Console.WriteLine("MaxAgeSeconds:{0}", rule.MaxAgeSeconds);
}
上記のソースコードは以下の場所で入手できます: GitHub
CORS ルールの削除
これを使用して指定されたバケットの CORS を無効にし、すべてのルールをクリアします。
using Aliyun.OSS;
// Initialize an OSSClient
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
// Clear the CORS rules of a bucket
client.DeleteBucketCors(bucketName);
上記のソースコードは以下の場所で入手できます: GitHub