поток — Как предотвратить создание временных файлов в PHP при получении двоичных файлов

Я пытаюсь создать небольшой сервис, который может получать файл и отправлять его в другое место, не создавая физической копии (из соображений безопасности).
Я отправляю файл с запросом POST в виде необработанных двоичных данных и обращаюсь к нему с помощью file_get_contents('php://input')

упрощенный код:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://totally-legit-url');
curl_setopt($ch, CURLOPT_RETURNTRASNFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: text/plain']);
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents('php://input'));
$response = curl_exec($ch);

Однако проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я отправляю файл, даже небольшие файлы (я пробовал файлы разных размеров, например, 2 КБ, 299 КБ и 8 МБ), PHP автоматически создает временный файл в sys_temp_dir каталог, который именно то, что я пытаюсь предотвратить. Я всюду искал ответ, но не нашел способа помешать PHP создать временный файл. Я даже пытался установить sys_temp_dir в /dev/null но тогда скрипт просто вылетел с ошибкой.

Скрипт работает на Apache 2.4.25 в PHP 7.1.3

Есть ли способ заставить сервер не создавать временные файлы и работать только с памятью?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector