如何处理SbreDav中的大文件?

时间:2014-01-07 17:09:41

标签: php large-files sabredav

我正在使用SabreDAV PHP库连接到WebDAV服务器并下载一些文件但是下载1MB文件需要永远,我必须从该服务器下载最多1GB的文件。我查看了这个链接http://code.google.com/p/sabredav/wiki/WorkingWithLargeFiles,但它没有帮助,因为它告诉我,当我进行GET时我会得到一个流,但事实并非如此。

这是我的代码:

$settings = array(
    'baseUri' => 'file url',
    'userName' => 'user',
    'password' => 'pwd'
);

$client = new \Sabre\DAV\Client($settings);
$response = $client->request('GET'); 

response是一个带有'body'键的数组,其中包含文件的内容。我究竟做错了什么?我只需要该文件只读。如何尽可能快地逐行读取文件?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果下载1MB文件需要太长时间,那么我认为它不是SabreDAV问题,而是您的服务器或网络或远程服务器的问题。

你提到的谷歌代码链接只列出了一种方法,如果你想传输非常大的文件,因为你必须使用他们提到的流和fopen方式,但我想我能够传输1GB文件而不使用它当我上次与OwnCloud一起使用时,通常就是这样。

如果您有VPS / Dedi服务器,请打开ssh并使用wget命令测试从WebDAV下载该远程文件所需的速度和时间,如果与使用SabreDAV的那个相同,那么它是服务器/网络问题,而不是SabreDAV,否则,它是Saber或您的代码的问题。

很抱歉,但我没有任何代码可以发帖来帮助你,因为问题本身并不清楚,导致它的问题可能超过10件。

PS:你需要增加执行时间,最大文件上传和最大帖子大小的php限制