Как бороться с большими файлами в SbreDav?

Я использую PHP-библиотеку SabreDAV для подключения к серверу WebDAV и загрузки некоторых файлов, но загрузка файла размером 1 МБ занимает целую вечность, и мне необходимо загрузить с этого сервера до 1 ГБ файлов. Я посмотрел на эту ссылку 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 ответ

Если скачивание файла размером 1 МБ занимает слишком много времени, то я думаю, что это не проблема SabreDAV, а проблема с вашим сервером или сетью, или, возможно, удаленным сервером.

Ссылка на код Google, которую вы упомянули, просто перечисляет способ, если вы хотите передавать очень большие файлы, для этого вам придется использовать поток и fopen, как они упоминали, но я думаю, что я смог передать файлы 1GB без использования этого способа и просто обычно, когда я последний раз использовал его с OwnCloud.

Если у вас есть сервер VPS/Dedi, откройте ssh и используйте команду wget, чтобы проверить скорость и время, которое требуется для загрузки этого удаленного файла из WebDAV, если он совпадает с тем, что происходит с SabreDAV, то это проблема сервера / сети, а не SabreDAV, это проблема с Sabre или вашим кодом.

Извините, но у меня нет кода для публикации, чтобы помочь вам, так как сама проблема не ясна, и может быть более 10 причин, вызывающих ее.

PS: Вам нужно увеличить лимиты php для времени выполнения, максимальной загрузки файла и максимального размера поста относительно

Другие вопросы по тегам