クロスオリジンリソース共有 (CORS) は、Web アプリケーションサーバーがオリジン間のアクセス制御を可能にする標準の HTML5 メカニズムです。これにより、異なるオリジン間でのデータ転送のセキュリティが確保されます。このトピックでは、cors コマンドを使用して、バケットの CORS 設定を追加、変更、取得、削除する方法について説明します。
使用上の注意
-
CORS 設定を追加または変更するには、
oss:PutBucketCors権限が必要です。CORS 設定を取得するには、oss:GetBucketCors権限が必要です。CORS 設定を削除するには、oss:DeleteBucketCors権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
-
ossutil 1.6.16 以降、オペレーティングシステムに関係なく、コマンドラインでバイナリ名として ossutil を使用できます。1.6.16 より前のバージョンの ossutil を使用する場合、オペレーティングシステムに応じてバイナリ名を変更する必要があります。詳細については、「ossutil コマンドリファレンス」をご参照ください。
-
CORS の詳細については、「クロスオリジンリソース共有」をご参照ください。
CORS 設定の追加または変更
バケットに CORS 設定がない場合、このコマンドは CORS 設定を追加します。バケットに CORS 設定が既にある場合、このコマンドは既存の設定を上書きします。
CORS 設定を追加または変更するには、次の手順に従ってください:
-
ローカルファイルを作成し、そのファイルに CORS ルールを追加します。
-
ossutil はローカルファイルから CORS 設定を読み取り、指定されたバケットに適用します。
コマンド形式と例は次のとおりです:
-
コマンド形式
ossutil cors --method put oss://bucketname local_xml_fileパラメーターは次のとおりです:
パラメーター
説明
bucketname
CORS 設定を追加または変更するバケットの名前。
local_xml_file
CORS ルールを含むローカルファイルの名前。例:
localfile.txt。 -
例
-
localfile.txtという名前のローカルファイルを作成し、必要な CORS ルールをファイルに追加します。次の CORS ルールのサンプルでは、
http://www.aliyun.comからのクロスオリジンPUTリクエストを許可します。また、ブラウザが特定のリソースに対するプリフライト (OPTIONS) リクエストへのレスポンスを 10,000 秒間キャッシュするように指定します。<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.aliyun.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>10000</MaxAgeSeconds> </CORSRule> </CORSConfiguration> -
examplebucket バケットに CORS ルールを追加します。
ossutil cors --method put oss://examplebucket localfile.txt次の出力は、CORS ルールが追加されたことを示します。
0.299514(s) elapsed
-
CORS 設定の取得
-
コマンド形式
ossutil cors --method get oss://bucketname [local_xml_file]パラメーターは次のとおりです:
パラメーター
説明
bucketname
CORS 設定を取得するバケットの名前。
local_xml_file
CORS 設定を保存するローカルファイルの名前。例:
localfile.txt。このパラメーターを指定しない場合、CORS 設定は画面に出力されます。 -
例
examplebucket バケットの CORS 設定を取得します。
ossutil cors --method get oss://examplebucket localfile.txt次の出力は、CORS 設定が取得され、localfile.txt ファイルに書き込まれたことを示します。
0.212407(s) elapsed
CORS 設定の削除
-
コマンド形式
ossutil cors --method delete oss://bucketname -
例
examplebucket バケットから CORS 設定を削除します。
ossutil cors --method delete oss://examplebucket次の出力は、examplebucket バケットの CORS 設定が削除されたことを示します。
0.530750(s) elapsed
共通オプション
別のリージョンのバケットにアクセスするには、 -e を使用してエンドポイントを指定します。 別の Alibaba Cloud アカウントが所有するバケットにアクセスするには、AccessKey ID には -i を、AccessKey secret には -k を使用します。
たとえば、別の Alibaba Cloud アカウントが所有する、China (Hangzhou) リージョンにある testbucket という名前のバケットに CORS 設定を追加するには、次のコマンドを実行します:
ossutil cors --method put oss://testbucket localfile.txt -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret
詳細については、「共通オプション」をご参照ください。