ルールエンジンは、条件付きルールを設定するためのグラフィカルユーザーインターフェイスを提供します。これらのルールがユーザーリクエストパラメーターを分析し、特定の設定が適用されるかどうかを判断することで、CDN、 の設定ポリシーの適用を柔軟かつ正確にコントロールできます。
背景
Alibaba Cloud CDN コンソールは、キャッシュ有効期限の設定やオリジンフェッチパラメーターの書き換えなどの基本機能を提供しており、ほとんどの一般的な要件を満たします。しかし、パスに /example を含むリクエストを指定されたオリジンアドレスからフェッチするなどの特殊な要件については、ルールエンジンを使用してカスタム設定を実装する必要があります。さらに、Alibaba Cloud CDN は、非常に柔軟なカスタマイズをサポートする EdgeScript 機能を提供しています。
機能 | 基本機能 | 基本機能とルールエンジン | EdgeScript |
機能の実装 | 汎用的な設定 | グラフィカルインターフェイスを使用して、条件付きフィルタリングルールを作成できます。URI、ヘッダー、Cookie、クエリ文字列など、複数のマッチタイプと、AND/OR の論理結合をサポートしています。 | 柔軟性の高いカスタマイズが可能で、カスタムスクリプティングが必要な高度なシナリオに適しています。 |
シナリオ | 汎用的なシナリオ | 高度なカスタムシナリオ | 完全なカスタムシナリオ |
使いやすさ (必要な技術スキル) | 高 | 中 | 低 |
設定の柔軟性 | 低 | 中 | 高 |
複雑なロジックと EdgeScript
ルールエンジンは基本的な AND/OR の論理結合をサポートしているため、ほとんどの条件付きフィルタリングシナリオに適しています。ただし、次のシナリオは EdgeScript を使用するかどうかを判断する際の参考になります:
複雑な正規表現マッチング:ルールエンジンの正規表現演算子は、デフォルトで無効になっています。有効化を依頼するには、チケットを送信する必要があります。正規表現を頻繁に使用する場合は、EdgeScript が正規表現マッチングをネイティブにサポートしているため、より便利です。
高精度な多次元の組み合わせ:クライアント IP と User-Agent の両方を正規表現でマッチさせるなど、複数の条件を組み合わせた複雑な評価 (例:User-Agent に特定のキーワードが含まれる特定の IP アドレス範囲からのリクエストをブロックする) を設定するのは、ルールエンジンでは煩雑です。EdgeScript では、スクリプトロジックを使用して複数の条件を柔軟に組み合わせることができます。
細かな複数ディレクトリの IP アクセス制御:EdgeScript を使用すると、異なるディレクトリに対して異なる IP アドレス範囲のアクセスを許可できます。たとえば、1 つの IP アドレス範囲にすべてのディレクトリへのアクセスを許可し、特定の IP アドレスには 1 つのディレクトリへのみアクセスを許可し、それ以外の IP アドレスはすべて拒否できます。
match_reを使用して IP アドレスと URI パスをマッチさせます。return trueを使用してリクエストを許可し、exit(403)を使用して拒否します。
制限
ドメイン名ごとに最大 50 個のルール条件を作成できます。
各ルール条件には、最大 20 個のサブルールを含めることができます。
コンソールまたは OpenAPI でルール条件を設定する際に、正規表現一致演算子または正規表現不一致演算子を使用することはできません。ただし、これらの演算子を使用している既存の設定は表示できます。これらの演算子を使用するには、ESA を使用してください。
1つのドメイン名内のすべての機能において、ルール条件を参照できる合計回数は最大 5 回です。
ルール条件は最大 3 レベルまでネストでき、各レベルで独立した論理関係を設定できます。
キャッシュの有効期限の設定や送信リクエストヘッダーの変更などの機能がルール条件を参照する場合、機能の設定順序ではなく、条件の優先度によって実行順序が決まります。
前述の制限事項のうち、ルール条件 (最大 50 個)、サブルール (最大 20 個)、およびネスト (最大 3 レベル) はハードリミットであり、申請により増やすことはできません。1つの高速化ドメイン名内のすべての機能におけるルール条件の総参照回数の上限 (デフォルトは 5 回) は、申請により増やすことができます。
1つのドメイン名あたりのルール条件の総参照回数 (デフォルトは 5 回) を増やすには、チケットを送信 してください。チケットには、制限を増やしたい高速化ドメイン名、目標参照数、およびビジネスシナリオの説明を記載してください。
別の高速化ドメイン名を追加する際には、そのドメインのルール条件の参照数を増やすために別のチケットを送信してください。手順は最初の申請と同様です。
クライアント IP、URI、ファイルの拡張子、ファイル名、User-Agent などのマッチタイプでは、各条件に最大 32 個のマッチ値を設定できます。大規模なクライアント IP 許可リストがある場合は、複数の IP アドレスを CIDR ブロック (例:
120.209.XXX.X/24) に統合して IP アドレスを設定し、マッチ値の数を節約してください。最大 32 個の User-Agent マッチ値を設定できます。この制限を超える値は無視されます。多数の User-Agent をマッチングするには、ワイルドカード (
*) を使用して類似した User-Agent 値を統合してください (例:*Chrome*はすべての Chrome ブラウザバージョンにマッチします)。または、より柔軟なマッチングロジックを実現するために EdgeScript を使用してください。
機能の優先度と実行ロジック
ルールエンジンを設定する際は、次の機能の優先度と実行ロジックを考慮してください:
Referer ホットリンク保護はルールエンジンより優先されます:リクエストに Referer ヘッダーが含まれている場合、システムはまず Referer ブラックリストに照らしてリクエストを評価します。リクエストがブラックリストに一致する場合はブロックされます。一致しない場合は、次に Referer ホワイトリストに照らして評価します。ホワイトリストに一致するリクエストは許可され、ルールエンジンをバイパスして処理が続行されます。ホワイトリストに一致しないリクエストはブロックされます。Referer ヘッダーが空の場合、リクエストはこのロジックをバイパスし、ルールエンジンによって評価されます。
ルール条件を使用する機能の実行順序:キャッシュ有効期限やアウトバウンドリクエストヘッダーの変更などの機能がルール条件を使用する場合、システムは機能の設定順序ではなく、関連するルール条件の優先度に基づいて実行します。たとえば、キャッシュ有効期限とオリジンリクエストパラメーターの書き換えが異なる優先度のルール条件を使用する場合、システムはルール条件の優先度順 (高いものから低いものへ) に実行します。
URL 認証とキャッシュ間の競合のトラブルシューティング:URL 認証を設定した後に、認証パラメーターなしでリクエストにアクセスできてしまう、または有効なリンクが誤ってブロックされるなどの予期しない動作が発生した場合は、次の項目を順に確認してください:
WAF ホワイトリストが設定されているかどうかを確認してください。WAF ホワイトリストは、 CDN および の認証ロジックをバイパスして、リクエストを直接通過させる可能性があります。
URL パラメーターの無視機能によって
auth_keyなどの認証パラメーターが除外されていないことを確認してください。この設定によって認証パラメーターが除外されると、キャッシュヒットに対する認証検証がスキップされます。キャッシュキールールが認証パラメーターを無視していないことを確認してください。無視している場合、異なる認証パラメーターを持つリクエストが同じキャッシュされたコンテンツを受け取る可能性があり、事実上、認証がバイパスされます。
ルール条件の構文
ルール条件は、論理演算子を使用して 1 つ以上の条件式を組み合わせたものです。本セクションでは、構文について説明します。
論理演算子
論理演算子は、ネストされた条件セットを含め、同一レベルの条件を評価します。サポートされている演算子は and と or です。
and(AND):論理 AND 演算子。すべての条件が true の場合にのみ一致します。or(OR): 論理 OR 演算子です。いずれかの条件が true の場合に一致します。たとえば、同じレスポンスヘッダーに複数のルール条件を設定すると、異なる条件で同じレスポンスヘッダーを追加できます。例: URI に/path-a[または]/path-bが含まれる場合、レスポンスヘッダーを追加します。
条件式のパラメーター
条件式はルールの最小単位であり、以下のパラメーターが含まれます。
パラメーター | ドメイン名設定の条件 関数における対応する設定 パラメーター | 説明 | 必須 |
条件一致 | match | 条件一致式を指定します。 | はい |
論理演算子 | logic | 条件一致式の論理演算子を指定します。有効な値は | はい |
基準 | criteria | 評価対象となる条件式の配列を指定します。 | はい |
一致タイプ | MatchType | クライアントリクエストで照合する情報のタイプを指定します。 | はい |
一致オブジェクト | MatchObject | 一致タイプをさらに絞り込みます。例えば、クライアント IP アドレスは POP 接続 IP または XFF IP として指定できます。 | いいえ |
一致演算子 | MatchOperator | 実行する比較を指定します。 | はい |
一致値 | MatchValue | クライアントリクエストのデータと比較する値を指定します。 | はい |
条件の否定 | negate | 条件式の結果を否定するかどうかを指定します。有効な値は true と false です。 | はい |
大文字と小文字の区別 | caseSensitive | 一致値の大文字と小文字を区別するかどうかを指定します。 | いいえ |
ルール条件名 | name | ルール条件の名前を指定します。 | はい |
ステータス | status | ルール条件のステータスを指定します。 | はい |
条件式の設定
一致タイプ | ドメイン名設定の 条件 関数における対応する設定パラメーター | 説明 | 一致対象 | 一致演算子 | 一致値 | 大文字と小文字の区別 | 対応する Nginx/Tengine 変数 |
プロトコル | scheme | HTTP や HTTPS など、クライアントリクエストで使用されるプロトコルです。 | 該当なし |
|
| 該当なし |
|
リクエストメソッド | method | GET や PUT など、クライアントリクエストで使用されるリクエストメソッドです。 | 該当なし |
|
| 該当なし |
|
URI (パス) | uri | リクエストパラメーターを除いた、クライアントリクエスト URL のパスです。たとえば、 | 該当なし |
| ワイルドカードとして、 |
|
|
ファイル名 | basename | クライアントがリクエストするファイルの名前です。例: | 該当なし |
| ワイルドカード |
| - |
拡張子 | extension | クライアントがリクエストしたファイルのファイル拡張子です。システムは、ファイル名の最後のドット (.) から末尾までの部分文字列を拡張子として識別します。例: | 該当なし |
| サポートされているワイルドカードは |
| - |
ホスト名 | hostname | クライアントリクエストのホスト名です。一致の優先順位:リクエスト URL の | 該当なし |
| クライアントリクエストの |
|
|
クライアント IP アドレス | clientip | クライアントの IP アドレスです。IPv4 (例: |
説明 POP 接続 IP と XFF IP の詳細については、「.」をご参照ください。 |
|
| 該当なし |
|
クライアント IP バージョン | clientipVer | クライアントの IP アドレスのバージョンです:IPv4 または IPv6。 |
説明 POP 接続 IP と XFF IP の詳細については、「.」をご参照ください。 |
|
| 該当なし | - |
インターネットサービスプロバイダー (ISP) | geolocation | クライアント IP アドレスの ISP です。 |
説明 POP 接続 IP と XFF IP の詳細については、「.」をご参照ください。 |
| ドロップダウンリストから ISP を選択するか、文字を入力して候補を絞り込むことができます。ID または名前によるあいまい検索に対応しています。複数の値を入力できます。 | 該当なし |
|
IP ジオロケーション | geolocation | クライアント IP アドレスの地域情報です。 |
説明 POP 接続 IP と XFF IP の詳細については、「.」をご参照ください。 |
| ドロップダウンリストからロケーションを選択するか、文字を入力して候補を絞り込むことができます。ID または名前によるあいまい検索に対応しています。複数の値を入力できます。 | 該当なし |
|
リクエストパラメーター | querystring | リクエスト URL のパラメーターです。 | パラメーター名を入力します。 |
| ワイルドカードの |
|
|
リクエストヘッダー | header | クライアントリクエストのヘッダーです。 | パラメーター名を入力するか、ドロップダウンリストからパラメーターを選択できます。 |
| 複数の値を入力できます。 |
|
|
Cookie | cookie | クライアントリクエストの Cookie です。 | Cookie 名を入力します。 |
| ワイルドカードの |
|
|
User-Agent | useragent | リクエストヘッダーの User-Agent です。 | 該当なし |
| ドロップダウンリストから値を選択するか、 |
|
|
レンジバケット | range | 指定した割合のクライアントリクエストに一致します。 | 該当なし |
| 割合の値を入力します。 | 該当なし | - |
時間 | time | クライアントリクエストが発生した時刻です。時刻は UTC+8 です。例: 09:10~14:22。 | 該当なし |
| 09:10~14:22 などの時間範囲を入力します。これは 09:10 から 14:22 までの期間を表します。 | 該当なし | - |
Nginx 変数 | ngxvar | 前述の変数で要件を満たせない場合は、Nginx 変数を使用します。サポートされている変数の一覧については、Nginx の公式ドキュメントをご参照ください。 | ドロップダウンリストから変数を選択するか、変数名を入力できます。連結もサポートされています (例: |
| 複数の値を入力できます。 | 該当なし |
|
条件式設定の一般的な注意事項
URI (パス) の一致開始点: URI 照合の場合、値はドメイン名とリクエストパラメーターを除いた、ドメイン名以降のパスにおける最初の
/から始まるパス部分です。たとえば、リクエストhttps://example.com/path/file.html?key=valueの場合、実際に照合される URI 値は/path/file.htmlです。照合値は/で始まる必要があります。ファイル拡張子の一致形式: ファイル拡張子の一致を設定する場合、一致する値にはドット (
.) を含める必要があります。たとえば、.txtファイルと一致させるには、txtではなく.txtと入力します。そうしないと、一致しない場合があります。ワイルドカードの使用例: URI とファイル拡張子の一致では、ワイルドカード
?(任意の 1 文字に一致) と*(任意の数の文字に一致) がサポートされています。一般的な例:/*.pdf: ルートディレクトリ内のすべての PDF ファイルに一致します。/api/*/data:/api/で始まり、任意のサブパスにdataを含むパスに一致します。.??:.jsや.tsなど、すべての 2 文字のファイル拡張子に一致します。
IP アドレス検証モード
ルールエンジンには 2 つの IP アドレス検証モードがあり、選択したモードによって CDN POP がクライアント IP アドレスを識別する方法が異なります。
POP 接続 IP:このモードは、クライアントが CDN POP に接続するために使用する IP アドレスに一致します。クライアントと CDN POP 間のトラフィックがプロキシサーバーを通過する場合、POP 接続 IP はプロキシサーバーの IP アドレスになります。
XFF IP:このモードは、x-forwarded-for リクエストヘッダー内の左端の IP アドレスを照合します。クライアントと CDN POP の間にプロキシサーバーが使用されているかどうかにかかわらず、XFF IP は常にクライアントの実際の IP アドレスになります。
認証モードの選択は、クライアントリクエストがプロキシサーバーを通過してから CDN POP に到達するかどうかによって決まります。
ルール条件を参照する機能が有効になる CDN POP のロケーションは、選択すべき IP アドレス検証モードにも影響することにご注意ください。 L2 POP で有効になるオリジンフェッチ機能の場合、ユーザーリクエストが経由する L1 POP は中間プロキシサーバーに相当します。
例:クライアントの実際の IP アドレスを 10.10.10.10、プロキシ IP アドレスを 192.168.0.1 とします。
プロキシサーバーなしの場合:
x-forwarded-for リクエストヘッダーの値は
10.10.10.10です。クライアントのリアル IP アドレス (x-forwarded-for リクエストヘッダーの左端の IP) = クライアントと CDN POP 間の接続を確立するために使用される IP アドレス =
10.10.10.10。
プロキシサーバーありの場合:
x-forwarded-for リクエストヘッダーの値は
10.10.10.10,192.168.0.1です。クライアントのリアル IP アドレス (x-forwarded-for リクエストヘッダーの左端の IP) は
10.10.10.10です。クライアントとCDN POP 間の接続確立に使用される IP アドレス = プロキシサーバーの IP アドレス =
192.168.0.1。クライアントのリアル IP アドレス (x-forwarded-for リクエストヘッダーの左端の IP) は、クライアントが CDN POP との接続を確立する際に使用する IP アドレスとは異なります。
特定のリージョンでは、一部のインターネットサービスプロバイダー (ISP) がエンドユーザーにプライベート IP アドレスを割り当てることがあるため、CDN ノードはユーザーのプライベート IP アドレスを受信します。
プライベート IP アドレスは、以下の 3 つの範囲に分類されます。
クラス A プライベート IP アドレス:
10.0.0.0~10.255.255.255。サブネットマスク:10.0.0.0/8。クラス B プライベート IP アドレス:
172.16.0.0〜172.31.255.255。サブネットマスク:172.16.0.0/12。クラス C のプライベート IP アドレス:
192.168.0.0~192.168.255.255。サブネットマスク:192.168.0.0/16。
マッチオペレーター (matchOperator)
演算子 | ドメイン名設定の 条件 関数に対応する設定パラメーター | 説明 |
等しい | matchOperator を equals に設定します。 | 変数が指定された一致する値と完全に等しい、または等しくない場合にのみ条件が満たされます。 |
等しくない | matchOperator を equals に設定し、negate パラメーターを true に設定します。 | |
存在する | matchOperator を exists に設定します。 | 指定された変数がリクエスト内に存在するかどうかに応じて、条件が満たされます。 |
存在しない | matchOperator を exists に設定し、negate パラメーターを true に設定します。 | |
いずれかを含む | matchOperator を contains に設定します。 | 変数が指定された一致する値の いずれか を含む (または含まない) 場合に条件が満たされます。最大 32 個の一致する値がサポートされています。 2 種類の包含一致がサポートされています。
|
いずれも含まない | matchOperator を contains に設定し、negate パラメーターを true に設定します。 | |
より大きい | matchOperator を gt に設定します。 | つまり、 |
より小さい | matchOperator を lt に設定します。 | つまり、 |
以上 | matchOperator を ge に設定します。 | すなわち、 |
以下 | matchOperator を le に設定します。 | つまり、 |
正規表現一致 | matchOperator を regex に設定します。 | 変数を正規表現と照合します。 説明 コンソールまたは OpenAPI でルールを設定する場合、これらの正規表現演算子を使用することはできません。ただし、既存の設定は表示できます。 |
正規表現不一致 | matchOperator を regex に設定し、negate パラメーターを true に設定します。 |
ワイルドカード
ワイルドカード | 説明 | パス マッチングの例 |
| 任意の一文字に一致します。 |
|
| パス区切り文字 (/) を含まない、0 文字以上の任意の文字列に一致します。 |
|
ルール条件をサポートする機能
カテゴリ | 機能 |
基本設定 | |
キャッシュ設定 | |
オリジン設定 | |
アクセス制御 | |
パフォーマンス最適化 | |
動画設定 | |
トラフィックスロットリング |
設定管理
実行アクションの表示場所: [ルールエンジン] のページではルール条件のみを定義します。実行アクションを直接設定するものではありません。キャッシュの有効期限、URL リライト、スロットリングなどの特定の実行アクションは、ルールを参照する機能のページで表示および管理する必要があります。たとえば、キャッシュの有効期限設定がルール条件を参照している場合、[キャッシュ設定] > [キャッシュの有効期限] で表示および変更する必要があります。
[リモート認証]はルール条件をサポートしていません: [リモート認証] 機能はルール条件を参照できません。ルールエンジンを使用して、リモート認証が有効になる範囲を制御することはできません。
認証タイムアウトの制限: [リモート認証] 機能の [タイムアウト] は、最大 3000 ミリ秒 (3 秒) に設定できます。デフォルト値は 500 ミリ秒です。3000 ミリ秒は、システムがサポートする最大値です。
高度な使用例
ルールエンジンを使用すると、次の高度な設定を実装できます:
差別化されたレート制限:一部のリクエストにのみレート制限を適用し、他のリクエストには適用しない (たとえば、認証パラメーター付きの URL にはレート制限を適用し、他の URL には適用しない) 場合や、フォールバックのレート制限を設定する場合は、[ルールエンジン] モジュールでリクエストの特性を区別するルール条件を作成します。次に、[単一リクエストのスロットリング] で、異なるルール条件を参照し、それぞれに異なるレート制限を設定します。
IP ベースのカナリアオリジンルーティング:クライアント IP アドレスに基づいてカナリアリリースを実装したり、特定の IP からのリクエストを異なるオリジンにルーティングしたりするには、ルールエンジンで IP 一致条件を作成します。次に、[条件付きオリジンサーバ] でそのルール条件を参照し、異なるオリジンアドレスを指定します。
混合オリジンアーキテクチャの推奨:オリジンとして WAF と OSS の両方を使用する必要がある場合は、複数のプライマリオリジンを直接設定しないでください。代わりに、ルールエンジンを使用して URL パスに基づいて一致条件を作成し、[条件付きオリジンサーバ] で各パスのオリジンアドレスを動的に指定して、複数のオリジン間のオリジン競合を回避します。
操作手順
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションペインで [ドメイン名 ] をクリックします。
[ドメイン名] ページで、管理対象のドメイン名を見つけ、[アクション] 列の [管理] をクリックします。

指定したドメイン名の左側メニューで、ルールエンジン をクリックします。
ルールの追加 をクリックします。
ルールの追加 ページで、ルール名 と [ルール内容] を設定します。
送信 をクリックして設定を完了します。
一般的な設定シナリオ
以下のセクションでは、3 つの一般的な設定シナリオを実装する方法について説明します。
シナリオ 1:IP ホワイトリストによるアクセス制御とホワイトリスト外リクエストのリダイレクト
要件:指定された IP アドレスのみが Web サイトにアクセスできるようにし、他のすべての IP アドレスをメンテナンスページに自動的にリダイレクトします。
設定方法:
[ルールエンジン] モジュールで、ルール条件を作成します。一致タイプを [クライアント IP アドレス] に設定し、一致演算子を [いずれも含まない] に設定して、ホワイトリストに登録された IP アドレスを一致する値として入力します。
[キャッシュ設定] > [アクセス URL リライト] で、このルール条件を参照し、一致するリクエスト (つまり、ホワイトリストにない IP アドレスからのリクエスト) を、OSS でホストされている HTML ページなどの指定されたメンテナンスページの URL にリダイレクトします。
注意事項:
ホワイトリストにない IP アドレスからのリクエストがリダイレクトされずに 403 を返す場合は、複数の OSS オリジンがオリジン競合を引き起こしていないか確認してください。各 CDN または ドメイン名は、1 つのプライマリ OSS オリジンにのみマッピングすることを推奨します。
メンテナンスページの URL が公開アクセス可能であり、他のアクセス制御ルールによってブロックされていないことを確認してください。
デフォルトの動作:IP ホワイトリストのルールが URI パス一致条件に関連付けられている場合、IP ホワイトリストのチェックはその URI パスに一致するリクエストにのみ適用され、一致しないリクエストはデフォルトで許可されます。すべてのパスに IP アクセス制御を適用するには、EdgeScript を使用してカスタムロジックを記述します。
シナリオ 2:Referer 保護とファイル拡張子制御
要件:指定された拡張子のファイルに対する Referer アクセスを制限し、それらの拡張子のファイルに対する空の Referer を持つリクエストは許可します。
設定方法:
[ルールエンジン] モジュールで、ルール条件を作成します。一致タイプを [ファイル拡張子] に設定し、一致演算子を [いずれも含まない] に設定し、除外したい拡張子 (例:
.pdf) を一致する値として入力します。[アクセス制御] > [Referer ホットリンク保護] で、このルール条件を参照します。指定された拡張子以外の拡張子に対するリクエストは Referer のホワイトリストまたはブラックリストによって制限されますが、指定された拡張子に対する空の Referer を持つリクエストは除外されます。
シナリオ 3:画像および動画以外のファイルへのアクセスをブロック
要件:OSS バケットは CDN アクセラレーションを通じて利用可能です。細工された悪意のある URL を介した .html などの非メディアファイルへのアクセスはブロックする必要があります。
設定方法:
[ルールエンジン] モジュールで、ルール条件を作成します。一致タイプを [ファイル拡張子] に設定し、一致演算子を [いずれかを含む] に設定し、
.html,.htm,.php,.asp,.jspを一致する値として入力します。ルール条件を追加します。[一致タイプ] を「クライアント IP」に、[一致演算子] を「いずれも含まない」に設定し、[一致値] をホワイトリストに登録された IP アドレスに設定します。
[アクセス制御] でこのルール条件を参照し、一致するリクエスト (ホワイトリストに登録されていない IP アドレスから、指定されたファイル拡張子を持つファイルへのリクエスト) に対して 403 を返します。
注 (アップロード制限):
CDN ルールエンジンはアクセスのみを制限し、アップロードを制御することはできません。アップロード中にファイルタイプを制限するには、OSS の PostObject API を使用し、ポリシーを設定してファイルタイプを制限します。たとえば、starts-with $Content-Type image/ を設定すると、.html などの非画像ファイルのアップロードが拒否されます。OSS の PutObject API はファイルタイプをチェックしないため、アップロード中に非メディアファイルをブロックすることはできません。