php-opencloud openstack загружает изображение, но не может сохранить его в локальном файле
Используя php-opencloud, мне удается подключиться, чтобы запустить загрузку моих изображений. Большие файлы (20, 30 или 50 ГБ).
Следуя документу , с
$image = $service->getImage($image_id);
$stream = $image->downloadData();
Я вижу, что Psr7 загружает тело запроса во временный файл
/tmp/php...
но я просто не могу понять, как перенаправить данные, чтобы сохранить их в постоянном локальном файле.
При использовании fopen, fwrite у меня возникла проблема нехватки памяти и
$fp = fopen( $local_file, 'w' );
stream_copy_to_stream( $image->downloadData(), $fp );
не вызывает ошибки, но в конце $local_file по-прежнему 0 байтов.
Как я могу этого добиться?
1 ответ
Я пытался часами и знал, что это чертовски глупо:
while( !$stream->eof() ) {
$buffer = $stream->read( 4096 );
fwrite( $fp, $buffer );
}
fclose( $fp );
хорошо работает