nginx之如何使用 Nginx 通过文件 RIFF header 设置 MIME

zhengyun_ustc 阅读:13 2024-10-01 17:34:08 评论:0

我的文件使用其哈希名称保存,没有扩展名。但我确定它是 RIFF 文件,如 WAV、MP3。我如何添加 MIME 取决于它使用 nginx 的 RIFF header ?

编辑: 大多数文件是 mp3 格式,所以我使用下面的位置 block 。

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

请您参考如下方法:

How can I add MIME depend on it's RIFF header using nginx?

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

不过,您可以采取以下几种选择:

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


标签:nginx
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号