首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php-opencloud openstack下载图像,但无法将其保存在本地文件中

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

Stack Overflow用户
提问于 2021-03-16 08:31:16
回答 1查看 39关注 0票数 0

使用php-opencloud,我设法连接以触发我的图像的下载。大文件(20、30或50 GB)。

Following the doc,带

代码语言:javascript
复制
$image = $service->getImage($image_id);
$stream = $image->downloadData();

我可以看到Psr7在一个临时文件/tmp/php...中下载请求正文,但是我就是不知道如何重定向数据以将它们存储在一个持久的本地文件中。

使用fopen、fwrite时,我遇到了内存耗尽的问题,

代码语言:javascript
复制
$fp = fopen( $local_file, 'w' );
stream_copy_to_stream( $image->downloadData(), $fp );

不会触发错误,但$local_file的末尾仍为0字节。

我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2021-03-16 08:53:51

我试了几个小时,我知道这是愚蠢的地狱:

代码语言:javascript
复制
while( !$stream->eof() ) {
  $buffer = $stream->read( 4096 );
  fwrite( $fp, $buffer );
}

fclose( $fp );

工作得很好

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66647548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档