Загрузка файлов .gz из SFTP с использованием R - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь загрузить файл .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-сайтам, но ни один из этих ответов не работает для меня.

...