Welcome! Log In Create A New Profile

Advanced

Re: Вопрос по client body in file only в контексте file upload

Maxim Dounin
October 13, 2013 07:08PM
Hello!

On Sun, Oct 13, 2013 at 05:36:51PM -0400, naive wrote:

> Доброй ночи!
>
> Возник вопрос по использованию client_body_in_file_only для обработки file
> upload.
>
> Есть подробный how-to, раскрывающий данную тему:
> https://coderwall.com/p/swgfvw
>
> Однако, возникает вопрос - что произойдёт, если при записи файла в
> client_body_temp_path файл с подобным именем будет уже существовать?
> Такая ситуация, как мне кажется, может произойти в случаях:
> 1. количество файлов станет >= 10^10
> 2. файлы будут восстановлены из бекапа, при этом id будет высчитываться
> "по-порядку"
> 3. случайно сгенерированный id совпадёт с именем уже существующего файла
>
> Возможные варианты:
> 1. ошибка
> 2. перезапись файла
> 3. генерация нового id, при наличии ранее созданного файла с таким же именем
> (если кол-во файлов <10^10)

Если при создании временного файла nginx натыкается на уже
существующий файл, то он пробует ещё раз, выбрав другое имя файла.
Подробнее можно почитать в src/core/ngx_files.c, в функции
ngx_create_temp_file().

> Вопрос, на который я хочу ответить - можно ли хранить uploaded files прямо в
> client_body_temp_path или же необходим CLI-скрипт, перемещающий файлы в
> другую директорию с гарантированно уникальным id или проверкой
> уникальности?

Каталог для хранения временных файлов не предназначен для того,
чтобы в нём держали файлы дольше, чем это необходимо для обработки
этих файлов. Фатальных проблем при коллизиях не возникнет, см.
выше, но и хорошего тоже немного.

> И смежный подвопрос - когда появится возможность влиять на
> client_body_temp_path и имена файлов, которые генерятся при записи
> (насколько я понимаю, сейчас они имеют вид [\d]{10})?

Возможность влиять на имена файлов есть и сейчас, она подробно
документирована тут:

http://nginx.org/r/client_body_temp_path

А именно - можно задавать желаемую иерархию подкаталогов. Более
никаких возможностей для влияния не планируется.

--
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Вопрос по client_body_in_file_only в контексте file upload

naive October 13, 2013 05:36PM

Re: Вопрос по client body in file only в контексте file upload

Maxim Dounin October 13, 2013 07:08PM

Re: Вопрос по client body in file only в контексте file upload

naive October 14, 2013 08:07AM

Re: Вопрос по client body in file only в контексте file upload

Anatoly Mikhailov October 14, 2013 08:50AM

Re: Вопрос по client body in file only в контексте file upload

Maxim Dounin October 14, 2013 10:04AM

Re: Вопрос по client body in file only в контексте file upload

Vadim Lazovskiy October 15, 2013 01:32AM

Re: Вопрос по client body in file only в контексте file upload

Валентин Бартенев October 27, 2013 07:20AM

Re: Вопрос по client body in file only в контексте file upload

Andrey Oktyabrskiy October 27, 2013 10:20AM

Re: Вопрос по client body in file only в контексте file upload

naive October 14, 2013 12:58PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 288
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready