[PATCH] implemented hardlink option in DAV module

Михаил Монашёв postmaster at softsearch.ru
Tue Oct 16 17:31:13 UTC 2012


Здравствуйте, Maxim.

Вы писали 16 октября 2012 г., 21:10:52:

> Hello!

> On Tue, Oct 16, 2012 at 02:16:53PM +0400, Maxim Dounin wrote:

>> Hello!
>> 
>> On Tue, Oct 16, 2012 at 12:14:38AM +0400, Михаил Монашёв wrote:
>> 
>> > Здравствуйте, Gena.
>> > 
>> > >> У  меня, например, есть следующая задача: обновить mtime у файла по
>> > >> вебдаву.  Т.е.  сделать  touch  файлу.  Сейчас я это делаю через Ж:
>> > >> копирую  файл,  а  потом  мувлю его в уже существующий. Копирование
>> > >> очень долго работает, а со ссылкой работало бы моментально.
>> > 
>> > > моментально  это  работало  бы,  если  добавить  к реализации WebDAV
>> > > расширение, новый метод TOUCH который будет менять mtime файла
>> > 
>> > Ну  это  совсем  идеальный случай. Я о таком только мечтать могу. Если
>> > кто-то  вдруг  реализует,  то  я  только  за.  А пока выкручиваюсь как
>> > получается.
>> 
>> Если следовать идеалогии WebDAV'а, то твоя задача должна решаться 
>> с помощью метода PROPPATCH[1].  Но он долбанутый на всю голову и 
>> там требуется, чтобы сервер занимался парсингом набора инструкций 
>> в XML'е.
>> 
>> Если следовать здравому смыслу - то TOUCH, конечно, будет 
>> существенно проще.  Единственное что останавливает - его 
>> отсутствие, т.е. полная и абсолютная неспецифицированность.  С 
>> идеалогической точки зрения - возможно тут подойдёт правильно 
>> применённый метод PATCH[2].
>> 
>> Использование COPY с hardlink'ами для решения подобной задачи - 
>> это как-то слишком, IMHO, полностью согласен с Геной.  (Я бы 
>> наверное применил тут встроенный перл и не мучился особо.)
>> 
>> [1] http://tools.ietf.org/html/rfc4918#section-9.2
>> [2] http://tools.ietf.org/html/rfc5789

> Патч с реализацией TOUCH прилагается, желающие поиграться - добро 
> пожаловать.  Правда, Игорь считает изобретение новых методов 
> порочной практикой, так что в коробку этот патч попадёт врядли.

А если потребуется поменять atime, то:
-    if (ngx_set_file_time(NULL, fd, ctx->mtime) != NGX_OK) {
+    if (ngx_set_file_time(NULL, fd, ctx->atime) != NGX_OK) {

?

А  то  я  тут посмотрел код скриптов, работающих с вебдавом, чтоб туда
идейку  про  перл  в  комменты  записать.  А  там мы оказывается atime
меняем, а не mtime.

И,  кстати,  Игорь  прав.  ;-)  Глядя  на  твой патч возникает желание
плодить методы под каждый чих, что неправильно.

-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



Подробная информация о списке рассылки nginx-ru