繁体   English   中英

php-opencloud openstack 下载图像但无法将其保存在本地文件中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM