このトピックでは、HTML5プレーヤー、Flashプレーヤー、およびObject Storage Service (OSS) を使用して実行される再生用にクロスオリジンリソース共有 (CORS) を設定する方法について説明します。
HTML5プレーヤーを使用してFLVおよびM3U8ビデオを再生するためのCORSの設定
次のエラーメッセージが返された場合、この問題を解決するには、再生用のドメイン名のCORSを有効にする必要があります。
No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
Origin ‘http://localhost:9030‘ is therefore not allowed access.
HTTPヘッダーを追加してCORSを有効にします。 詳細については、「カスタムHTTPレスポンスヘッダーの設定」をご参照ください。
Access-Control-Allow-Origin: クロスオリジンリクエストを許可するドメイン名を指定します。 HTTPヘッダーの値を、ビデオが再生されるWebサイトのドメイン名に設定します。 たとえば、https://www.aliyundoc.com Webサイトでビデオを再生する場合は、値を https://www.aliyundoc.com に設定します。 次の図は、Access-Control-Allow-Originヘッダーの設定方法を示しています。
Access-Control-Allow-Methods: クロスオリジンリクエストの許可されたメソッドを指定します。 有効な値: POSTおよびGET。 POSTメソッドとGETメソッドの両方を指定し、コンマ (,) で区切ることができます。 次の図は、Access-Control-Allow-Methodsヘッダーの設定方法を示しています。
.ts部分のURLとM3U8ビデオのURLが異なるドメイン名に属している場合は、.ts部分のドメイン名に前述のHTTPヘッダーを設定する必要があります。
FlashプレーヤーのCORSの設定
次の図のエラーメッセージが返された場合は、インターネットコンテンツプロバイダ (ICP) ファイリングが取得されているかどうか、およびCNAMEがドメイン名にマップされているかどうかを確認します。 詳細については、「ドメイン名の要件」および「Alibaba Cloud DNSにCNAMEレコードを追加する」をご参照ください。
ドメイン名にICP登録があり、CNAMEにマップされている場合は、CORSを設定する必要があります。 CORSを設定するには、crossdomain.xmlという名前のクロスオリジンポリシーファイルをプレーヤーに追加します。
ビデオURLが属するドメイン名のルートディレクトリにファイルを追加します。 再生するビデオがOSSバケットに保存されている場合は、OSSバケットのルートディレクトリにファイルを追加します。
ApsaraVideo VODを有効にした場合、サービスを有効にした後、ApsaraVideo VODによってcrossdomain.xmlファイルが自動的に追加されます。 次に、SetCrossdomainContent操作を呼び出して、crossdomain.xmlファイルの内容を更新できます。
次のコードは、crossdomain.xmlファイルのコンテンツの例を示しています。
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
サムネイルのURLとビデオのURLが異なるドメイン名に属している場合は、サムネイルのドメイン名にcrossdomain.xmlファイルを追加する必要があります。
OSSに保存されているビデオを再生するためのCORSの設定
ビデオが保存されているOSSバケットにプレーヤーがアクセスする場合は、OSSバケットのCORSを設定する必要があります。 詳細については、「CORSルールの設定」をご参照ください。
CORSルールを作成するには、次のパラメーターを設定します。
Sources: パラメーターをアスタリスク (*) に設定します。
許可メソッド: 有効な値: GET、POST、PUT、DELETE、およびHEAD。
許可されたヘッダー: パラメーターをアスタリスク (*) に設定します。
Exposed Headers: パラメーターをETagに設定します。
このルールをすべてのCORSルールの最初として指定します。
次の図は、CORSルールを作成するためのパラメーターの設定方法を示しています。