私のファイルは拡張子なしのハッシュの名前で保存されます.しかし、それはWAV、MP3のようなRIFFファイルだと確信しています.nginxを使用してRIFFヘッダーに依存するMIMEを追加するにはどうすればよいですか?
編集: ほとんどのファイルは mp3 形式なので、以下のロケーション ブロックを使用します。
config
location /audio/ {
#default_type "audio/mpeg";
}
私のファイルは拡張子なしのハッシュの名前で保存されます.しかし、それはWAV、MP3のようなRIFFファイルだと確信しています.nginxを使用してRIFFヘッダーに依存するMIMEを追加するにはどうすればよいですか?
編集: ほとんどのファイルは mp3 形式なので、以下のロケーション ブロックを使用します。
config
location /audio/ {
#default_type "audio/mpeg";
}
nginxを使用してRIFFヘッダーに依存するMIMEを追加するにはどうすればよいですか?
できません。Nginxは、ファイルを検査し、その内容に基づいて適切なヘッダーを送信することをサポートしていません。
ただし、実行できるオプションがいくつかあります。
1)リクエストをウェブサーバーに送信し、コード内のファイルを調べてから、X-Accelヘッダーをnginxに送信するを使用しますheader("X-Accel-Redirect: ".$filenameToProxy);
これにより、nginxはファイルを検査するためのわずかな処理時間でファイルを提供します。
2)拡張子なしで保存されている場合でも、ファイルのURLで拡張子をオンのままにします。ファイルへのリンクを提供するときは、拡張子を付けたままにしておく必要があります。これにより、ユーザーはどのファイルタイプが提供されるかを確認でき、nginxは適切なmimeタイプを提供することもできます。(私はまだこれをテストしていると思いますが)
location ~* /audio/(.*)(wav|mp3|avi|ani) {
add_header Content-Type $content_type
try_files /audio/$1
}
3)すべてのファイルの拡張子をオンのままにします。真剣に。なぜファイルの拡張子を取り除くのですか?
RIFFはWAVファイルの一種であるため、次のものを使用できるはずです。
wav audio/wav
wav audio/x-wav
以下はどうですか?それは望ましい効果を生み出しませんか?
location /audio/ {
default_type audio/mpeg;
}
それとも以下?
location /audio/ {
default_type audio/wav;
}