Pobierz pliki .RData i .csv z FTP za pomocą RCurl (lub dowolnej innej metody)
Przesłałem plik .RData (utworzony przy użyciusave()
) do serwera ftp i próbuję użyć getURL () do pobrania tego samego pliku. Dla wszystkich przykładów i postów, które przeczytałem, nie wydaje mi się, żeby to działało.
Plik .RData został zapisany przy użyciu:
save(results, file=RDataFilePath, compress="xz") #save object "results" w/ compression
#RDataFilePath is the location of the results.RData file on my harddrive
Dane te zostały przesłane przy użyciu:
uploadURL <-"ftp://name:password@host/folder/results.RData" #name the url
ftpUpload(RDataFilePath, to=uploadURL, connecttimeout=120) #upload
W ten sposób próbuję pobrać wyniki.RData używającgetURL
:
downloadURL <- "host/folder/results.RData"
load(getURL(downloadURL, userpwd="name:password", connecttimeout=120))
co daje następujący błąd:
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) :
embedded nul in string: 'ý7zXZ'
Kiedy wklejamdownloadURL
ciąg do mojej przeglądarki, plik .RData jest pobierany natychmiast, więc wiem, że nie ma literówki. Komunikat o błędzie sugeruje, że adres URL nie może zostać odczytany b / c formatowania kompresji; jednak podczas używania otrzymuję podobny komunikat o błędziesave()
bez kompresji.
Pojawia się również komunikat o błędzie podczas próby pobrania pliku .csv z FTP:
read.csv(getURL(downloadURL1)) #downloadURL1 is similar to downloadURL, but points to the .csv file
Error in file(file, "rt") : cannot open the connection
a następnie ostrzeżenie, które stwierdzaIn addition: Warning message: In file(file, "rt") : cannot open file
a następnie rozpoczyna wyświetlanie zawartości pliku .csv.
Próbowałem to rozgryźć przez większą część poranka i czuję, że muszę przegapić coś naprawdę podstawowego. Zgaduję, że muszę zmienić jakąś opcję curl, aby wiedział, jaki typ pliku będzie czytał. Moja składnia jest prawdopodobnie nieco wyłączona i nie używam getURL poprawnie, ale nie jestem pewien, co powinienem robić.
Wszelkie wskazówki będą bardzo mile widziane.
p.s. Moje obecne podejście opiera się na tymSłupek