Возьмите следующий случай:
Создайте файл remote.php
обработайте загрузки как:
<?php
$datosPUT = fopen("php://input", "r");
$fp = fopen("/data/uploaded_file", "w");
while ($datos = fread($datosPUT, 1024))
fwrite($fp, $datos);
fclose($fp);
fclose($datosPUT);
Чем:
fallocate -l 20G 20G.img
для генерации файл размером 20 ГБ curl -v -T 20G.img "http://test.lan/remote.php"
для его загрузки (дождитесь сообщения We are completely uploaded and fine here
, возвращаемого curl, и проверьте /tmp
содержимое и размер папки) - Проверьте
/tmp
содержимое (других действий нет) на сервере)
root@nc:/tmp# ll
total 44231688
drwxrwxrwt 9 root root 4096 Apr 21 17:08 ./
drwxr-xr-x 23 root root 4096 Apr 21 13:05 ../
-rw------- 1 test www-data 524288000 Apr 21 17:07 php0Bl5R0
-rw------- 1 test www-data 524288000 Apr 21 17:04 php1I3GXF
-rw------- 1 test www-data 524288000 Apr 21 17:02 php5hBopR
-rw------- 1 test www-data 524288000 Apr 21 17:07 php6GdBl1
-rw------- 1 test www-data 524288000 Apr 21 17:02 php8SoZP8
-rw------- 1 test www-data 524288000 Apr 21 16:55 php94C1P7
-rw------- 1 test www-data 524288000 Apr 21 17:01 phpAj4E6K
-rw------- 1 test www-data 524288000 Apr 21 17:00 phpbFMioX
-rw------- 1 test www-data 524288000 Apr 21 16:57 phpbpMui8
-rw------- 1 test www-data 524288000 Apr 21 17:08 phpbr44Fm
-rw------- 1 test www-data 524288000 Apr 21 17:00 phpC7eAlS
-rw------- 1 test www-data 524288000 Apr 21 17:06 phpDqkjJA
-rw------- 1 test www-data 503316480 Apr 21 17:08 phpE3WWF8
-rw------- 1 test www-data 524288000 Apr 21 16:59 phpgg58CF
-rw------- 1 test www-data 524288000 Apr 21 16:57 phpgTn7yU
-rw------- 1 test www-data 524288000 Apr 21 16:59 phpH5Rofn
-rw------- 1 test www-data 524288000 Apr 21 17:02 phpHB2eXd
-rw------- 1 test www-data 524288000 Apr 21 16:58 phphB2RRt
-rw------- 1 test www-data 524288000 Apr 21 17:04 phpHFsJ93
-rw------- 1 test www-data 524288000 Apr 21 17:06 phpIXaJuR
-rw------- 1 test www-data 524288000 Apr 21 17:01 phpjM1Odf
-rw------- 1 test www-data 21474836480 Apr 21 17:08 phpkbPZho
-rw------- 1 test www-data 524288000 Apr 21 16:57 phpkpFvIV
-rw------- 1 test www-data 524288000 Apr 21 17:07 phpKxwy4v
-rw------- 1 test www-data 524288000 Apr 21 16:55 phpliytUl
-rw------- 1 test www-data 524288000 Apr 21 17:06 phpLvOcDN
-rw------- 1 test www-data 524288000 Apr 21 17:01 phpLXjWwW
-rw------- 1 test www-data 524288000 Apr 21 16:59 phpMIhuqB
-rw------- 1 test www-data 524288000 Apr 21 16:57 phpORClLm
-rw------- 1 test www-data 524288000 Apr 21 16:55 phpPmZnEN
-rw------- 1 test www-data 524288000 Apr 21 17:02 phprygofc
-rw------- 1 test www-data 524288000 Apr 21 17:05 phps1bH65
-rw------- 1 test www-data 524288000 Apr 21 17:07 phptMDOMB
-rw------- 1 test www-data 524288000 Apr 21 17:00 phpU6EVla
-rw------- 1 test www-data 524288000 Apr 21 16:55 phpubJd7r
-rw------- 1 test www-data 524288000 Apr 21 17:03 phpuDOvG2
-rw------- 1 test www-data 524288000 Apr 21 16:55 phpVoUm9U
-rw------- 1 test www-data 524288000 Apr 21 17:05 phpwL1OFG
-rw------- 1 test www-data 524288000 Apr 21 17:04 phpwN7SBU
-rw------- 1 test www-data 524288000 Apr 21 17:06 phpyi8xnZ
-rw------- 1 test www-data 524288000 Apr 21 17:01 phpZ44p88
-rw------- 1 test www-data 524288000 Apr 21 17:05 phpzoLawe
Я ожидал только phpkbPZho
файла, но не других.
Как видите, мой /tmp
имеет размер 40 Гб для 20 Гб загрузки, почему это поведение? Временные файлы очищаются после загрузки, но нам нужно 40 ГБ свободного места для загрузки файла 20 ГБ ...