This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
software:nginx:webdav [2015/07/01 01:06] – [Проблема 5 - переименование] root | software:nginx:webdav [2022/02/05 04:30] (current) – root | ||
---|---|---|---|
Line 18: | Line 18: | ||
===== Проблема 1 - Майкрософт нарушает стандарты и свои обещания ===== | ===== Проблема 1 - Майкрософт нарушает стандарты и свои обещания ===== | ||
- | {{:ru: | + | {{: |
Перед тем как создать файл WebDav клиент проверяет наличие файла посылая запрос: | Перед тем как создать файл WebDav клиент проверяет наличие файла посылая запрос: | ||
Line 93: | Line 93: | ||
===== Проблема 2 - PROPPATCH отсутствует в nginx ===== | ===== Проблема 2 - PROPPATCH отсутствует в nginx ===== | ||
- | {{:ru: | + | {{: |
WebDav от мс очень хочет метод PROPPATCH, которого в Nginx и расширениях нет. Совсем нет.\\ | WebDav от мс очень хочет метод PROPPATCH, которого в Nginx и расширениях нет. Совсем нет.\\ | ||
Я рассматривал два варианта решения: | Я рассматривал два варианта решения: | ||
Line 137: | Line 137: | ||
===== Проблема 3 - создание папок ===== | ===== Проблема 3 - создание папок ===== | ||
- | {{:ru: | + | {{: |
См п1 :) | См п1 :) | ||
Line 287: | Line 287: | ||
error_page 599 = @propfind_handler; | error_page 599 = @propfind_handler; | ||
error_page 598 = @delete_handler; | error_page 598 = @delete_handler; | ||
- | error_page 597 = @move_handler; | + | error_page 597 = @copy_move_handler; |
open_file_cache off; | open_file_cache off; | ||
client_max_body_size 50m; | client_max_body_size 50m; | ||
Line 303: | Line 303: | ||
if ($request_method = DELETE) { | if ($request_method = DELETE) { | ||
return 598; | return 598; | ||
+ | } | ||
+ | if ($request_method = COPY) { | ||
+ | return 597; | ||
} | } | ||
if ($request_method = MOVE) { | if ($request_method = MOVE) { | ||
Line 308: | Line 311: | ||
} | } | ||
- | dav_methods PUT MKCOL; | + | dav_methods PUT MKCOL; |
dav_ext_methods OPTIONS; | dav_ext_methods OPTIONS; | ||
create_full_put_path on; | create_full_put_path on; | ||
Line 320: | Line 323: | ||
location @propfind_handler { | location @propfind_handler { | ||
internal; | internal; | ||
+ | |||
+ | auth_basic " | ||
+ | auth_basic_user_file / | ||
open_file_cache off; | open_file_cache off; | ||
Line 330: | Line 336: | ||
location @delete_handler { | location @delete_handler { | ||
internal; | internal; | ||
+ | |||
+ | auth_basic " | ||
+ | auth_basic_user_file / | ||
open_file_cache off; | open_file_cache off; | ||
Line 338: | Line 347: | ||
dav_methods DELETE; | dav_methods DELETE; | ||
} | } | ||
- | location @move_handler | + | location @copy_move_handler |
internal; | internal; | ||
+ | |||
+ | auth_basic " | ||
+ | auth_basic_user_file / | ||
open_file_cache off; | open_file_cache off; | ||
Line 347: | Line 359: | ||
} | } | ||
root $webdav_root; | root $webdav_root; | ||
- | dav_methods MOVE; | + | dav_methods COPY MOVE; |
} | } | ||
location / { | location / { | ||
Line 364: | Line 376: | ||
- в папке "/ | - в папке "/ | ||
- location ^~ **/Family** - означает что клиент должен использовать URL: https:// | - location ^~ **/Family** - означает что клиент должен использовать URL: https:// | ||
+ | - директивы **auth_basic** и **auth_basic_user_file** должны быть в каждом **location** который осуществляет обработку запросов, | ||
Line 390: | Line 403: | ||
+ | ===== Полезное ===== | ||
+ | * Дальнейшая разработка решения происходит тут: [[https:// | ||
+ | * Патч [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | {{tag> |