合并 2 个不同文件夹 nginx 的目录列表

问题描述

我有 2 个文件夹,例如 folder-a 和 folder-b,它们显示Nginx 文件资源管理器的一部分。 我在下面有我的 Nginx 文件我有一个问题陈述,例如文件夹 a 和文件夹 b 有时共享具有不同内容的公共子目录,例如

folder-a->sub-folder->1.txt
folder-b->sub-folder->2.txt

因此,当用户查看文件夹 folder-a->sub-folder 或 folder-b>sub-folder 时,他应该能够同时看到 1.txt 和 2.txt,即它应该感觉像是一个统一的视图。我可以实现这是Nginx吗?

worker_processes 1;

events { worker_connections 1024; }

http {
    include /etc/Nginx/mime.types;
    server {
        server_name localhost;
        listen 80;
        root /usr/share/Nginx/html;
        
        autoindex on;               
        autoindex_exact_size off;   
        autoindex_localtime on;
        
         location ~ ^/folder-a/(.+)$ {
           error_page 404 @redirect;
        }

        location @redirect {
            return 301 /folder-b/$1;
        }
    }
}

解决方法

未测试但由于我们可以指定自动索引的输出格式,因此可能有解决方案/配置来打印创建新目录列表。

http://nginx.org/en/docs/http/ngx_http_autoindex_module.html

但它总是会“打印/显示”当前文件夹的内容。鉴于如果您想合并两个不同文件夹的文件列表,njs 可以在这里提供帮助。

类似于配置了 autoindex = on 和可用格式(如 jsonxml)的服务器。 njs 可以查询两个目录并重建新的输出(xml、json)。

未经测试,只是一个奇思妙想。