![](/img/trans.png)
[英]Php-opencloud Object Storage download file, GuzzleStream, how to>
[英]php-opencloud openstack download image but unable to save it in a local file
使用 php-opencloud,我设法连接以触发我的图像下载。 大文件(20、30 或 50 GB)。
按照文档,与
$image = $service->getImage($image_id);
$stream = $image->downloadData();
我可以看到 Psr7 正在将请求正文下载到临时文件/tmp/php...
但我根本不知道如何重定向数据以将它们存储在持久性本地文件中。
使用 fopen, fwrite 我遇到了 memory 耗尽和
$fp = fopen( $local_file, 'w' );
stream_copy_to_stream( $image->downloadData(), $fp );
不会触发错误,但 $local_file 最后仍为 0 字节。
我怎样才能做到这一点?
我尝试了几个小时,但我知道这很愚蠢:
while( !$stream->eof() ) {
$buffer = $stream->read( 4096 );
fwrite( $fp, $buffer );
}
fclose( $fp );
运行良好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.