使用php-opencloud,我设法连接以触发我的图像的下载。大文件(20、30或50 GB)。
$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字节。
我如何才能做到这一点?
发布于 2021-03-16 08:53:51
我试了几个小时,我知道这是愚蠢的地狱:
while( !$stream->eof() ) {
$buffer = $stream->read( 4096 );
fwrite( $fp, $buffer );
}
fclose( $fp );工作得很好
https://stackoverflow.com/questions/66647548
复制相似问题