R Импорт файлов (CSV) с FTP-сервера в фрейм данных - PullRequest
0 голосов
/ 28 января 2019

Я знаю, что на этой платформе есть несколько сообщений, относящихся к этой теме, но ни один код / ​​решение не смог решить мою проблему, касающуюся импорта данных с FTP-сервера на R. Надеюсь получить решение.

Я пытаюсь импортировать CSV-файлы с FTP-сервера в R (R локально; на моем Mac).Было бы лучше импортировать файлы в dataframe.Я хочу импортировать только определенные файлы с ftp-сервера, а не все файлы (файлы могут быть идентифицированы по имени, например, все csv-файлы с именем от «test-file01» до «test-file66»). Моя текущая проблема заключается в том, что я не могу импортировать один csv-файл в R с FTP-сервера.

Я пытался:

url = "ftp://xxxx.de/www_logs/testfolder/"

h = curl::new_handle(dirlistonly=TRUE, userpwd = "xxxx:yyyy")
h
con = curl::curl(url, "r", h)
con
tbl = read.table(con, stringsAsFactors=TRUE, fill=TRUE)

close(con)
head(tbl)


urls <- paste0(url, tbl[1:5,1]) # url
urls
fls = basename(urls) # path
fls
curl::curl_fetch_disk(urls[1], fls[1])

Отображение последнего запросасообщение об ошибке

error in curl::curl_fetch_disk(urls[1], fls[1]) : Access denied: 530

Я также попробовал это из поста Как передать имя пользователя и пароль в new_handle в curl R

userpwd <- "xxxx:yyyyy"
h <- curl::new_handle()
curl::handle_setopt(
  handle = h,
  # httpauth = 1,
  userpwd = userpwd
)

resp <- curl::curl_fetch_disk("ftp://xxxxx.de/www_logs/testfolder/", "testdataframe.csv", handle = h)

Не понимаю, что это за объектresp есть?Как я могу перевести его на dataframe?

Я также пытался:

url <- "ftp://xxx.de/www_logs/testfolder/"
userpwd <- "xxxx:yyyy"
bin = getBinaryURL(url, userpwd = userpwd, verbose = TRUE,
                   ftp.use.epsv = TRUE)

load(rawConnection(bin))

Последний запрос приводит к сообщению об ошибке:

Error in load(rawConnection(bin)) : 
the input does not start with the Magic Number, which is necessary for 
loading from a connection
...