Я пытаюсь загрузить файл .gz с сайта SFTP. Другие ответы показали мне, как войти на сайт SFTP, перечислить доступные файлы и прочитать файл в двоичном формате. Проблема в том, что я не могу понять, как сохранить файл в формате .gz.
Приведенный ниже код успешно создает вектор всех файлов на сайте SFTP.
library(tidyverse)
library(RCurl)
protocol <- "sftp"
server <- "files.company.com/pickup/"
userpwd <- "username:password"
filenames <-
getURL(
paste0(protocol, "://", server),
ftp.use.epsv = FALSE,
dirlistonly = TRUE,
userpwd = userpwd
) %>%
strsplit(split = "\n") %>%
unlist()
Вот моя попытка чтения одного из файлов .gz, основанная на этом ответе .
file_name <- filenames[1]
gz <- getBinaryURL(url = paste0(protocol, "://", server, file_name), userpwd = userpwd)
Затем я сохраняю файл на диск. Сохраняется несколько мегабайт, но когда я пытаюсь распаковать его, я получаю сообщение об ошибке, указывающее, что это не сохранение файла .gz.
file_name <- filenames[1]
gz <- getBinaryURL(url = paste0(protocol, "://", server, file_name), userpwd = userpwd)
Есть идеи? Есть несколько ответов, относящихся к FTP или защищенным паролем HTTP-сайтам, но ни один из этих ответов не работает для меня.