3

我的文件以不带扩展名的哈希名称保存。但我确定它是 RIFF 文件,如 WAV、MP3。如何使用 nginx 添加 MIME 取决于它的 RIFF 标头?

编辑:大部分文件是 mp3 格式,所以我使用下面的位置块。

config
location /audio/ {
     #default_type "audio/mpeg";
}
4

3 回答 3

4

如何添加 MIME 取决于使用 nginx 的 RIFF 标头?

你不能。Nginx 不支持检查文件,然后根据其内容发送适当的标头。

但是,您可以执行以下几个选项:

1) 将请求发送到您的网络服务器,检查代码中的文件,然后使用将X-Accel 标头发送到 nginxheader("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)只需为所有文件保留扩展名。严重地。为什么要去掉文件的扩展名?

于 2013-03-22T13:48:34.023 回答
1

RIFF 是一种 WAV 文件,因此您应该能够使用:

wav audio/wav
wav audio/x-wav
于 2013-03-22T13:33:48.183 回答
1

下面的呢?它不会产生预期的效果吗?

location /audio/ {
    default_type audio/mpeg;
}

还是以下?

location /audio/ {
    default_type audio/wav;
}
于 2013-03-28T15:26:57.247 回答