Проблема с заливкой файла (PUT) в директорию на отдельной файловой системе.

Maxim Dounin mdounin at mdounin.ru
Fri Oct 31 21:02:25 MSK 2008


Hello!

On Fri, Oct 31, 2008 at 08:08:18PM +0300, Lior Goikhburg wrote:

> Всем доброго времени.
>
> Недавно столкнулся с проблемой заливки файлов в location в котором  
> включён WEBDAV.
>        location /file/ {
>                dav_methods  PUT DELETE MKCOL COPY MOVE;
>                create_full_put_path   on;
>                dav_access             group:rw  all:r;
>                root   /var/www/storage;
>        }
>
> Заливаю так:
> /test# curl -T file.crp http://host/file/
> <html>
> <head><title>500 Internal Server Error</title></head>
> <body bgcolor="white">
> <center><h1>500 Internal Server Error</h1></center>
> <hr><center>nginx/0.6.32</center>
> </body>
> </html>
>
> В логе следующее:
> 2008/10/31 19:30:45 [crit] 5946#0: *6 rename()  
> "/var/lib/nginx/body/0000000003" to "/var/www/storage/file/file.crp"  
> failed (18: Invalid cross-device link), client: 192.168.1.167, server:  
> server1, request: "PUT /file/file%2Ecrp HTTP/1.1", host: "host"
>
> Директория /var/www/storage смонтирована с другого носителя (отдельного  
> от /var/lib/nginx/body/), в следствии этого и происходит ошибка в вызове  
> rename().
>
> Вопрос: Как заставить это работать ?

Настроить client_body_temp_path так, чтобы он указывал на тот же 
раздел, куда делается PUT.

http://sysoev.ru/nginx/docs/http/ngx_http_dav_module.html#dav_methods

Maxim Dounin





More information about the nginx-ru mailing list