nginx webdav 允许对用户进行写访问并允许对烦人的读访问

LR1*_*567 5 webdav nginx

我正在尝试在 nginx 中设置一个 webdav 文件夹,其中只有一个用户可以写入/删除/创建,但匿名用户可以读取。

我的 nginx 配置文件夹如下所示:

  location /webdav/joe/ {
      client_body_temp_path /tmp;
      dav_methods  PUT DELETE MKCOL COPY MOVE;
      dav_ext_methods PROPFIND OPTIONS;
      limit_except GET PROPFIND OPTIONS { }
      create_full_put_path  on;
      dav_access    user:rw group:rw all:r;

      fancyindex    on;
      fancyindex_exact_size off;
      auth_basic "Restricted Access";
      auth_basic_user_file /etc/nginx/auth/joe;
     }
Run Code Online (Sandbox Code Playgroud)

上面正确地限制了对 joe 的访问(joe 是包含用户 joe 的 httppasswd 文件)。但无法通过 http 访问,会提示输入密码,因此仅适用于 joe。

LR1*_*567 6

我终于通过这样做做到了这一点:

    location /webdav/joe/ {
            client_body_temp_path /tmp;

            dav_methods  PUT DELETE MKCOL COPY MOVE;
            dav_ext_methods PROPFIND OPTIONS;
            dav_access    user:rw group:rw all:r;
            create_full_put_path  on;
            client_max_body_size 100M;

            limit_except GET PROPFIND OPTIONS HEAD {
              auth_basic "Restricted Access";
              auth_basic_user_file /etc/nginx/auth/joe;
           }

            fancyindex    on;
            fancyindex_exact_size off;
    }
Run Code Online (Sandbox Code Playgroud)