Как скачать весь каталог в sftp, используя libcurl - PullRequest
2 голосов
/ 29 января 2012

Я программирую на C. Я хочу скачать определенный каталог с сервера (SFTP) с помощью libcurl. Я знаю, что мы можем скачать файл, используя следующую опцию, но как скачать каталог. Для SFTP опция wildcardmatch также не поддерживается, так что я могу загрузить все файлы в этом каталоге по крайней мере.

curl_easy_setopt(curl, CURLOPT_WRITEDATA, fd);

Платформа: Linux

1 Ответ

0 голосов
/ 29 января 2012

Вам, вероятно, нужно явно перечислить каталог и загрузить каждый файл внутри, который не является . или .. (возможно, повторяется в подкаталогах).

Итак, вы сначала отправляете запрос на перечисление каталога. Затем вы создаете (локально) массив записей, полученных по этому запросу. Затем для каждой такой записи вы отправляете запрос на загрузку файла или, если это [подкаталог], вы возвращаетесь внутрь.

И у вас всегда будут проблемы, если другой клиент вашего FTP-сервера будет добавлять или удалять файлы в этом же каталоге.

Кстати, некоторые FTP-серверы могут, например, архивировать весь каталог foo/, если вы извлекаете foo.tar.gz и т. д.

...