können Sie verwenden die AWS S3 package:
Ihre Lese auszuführen:
# These variables should be set in your environment, but you could set them in R:
Sys.setenv("AWS_ACCESS_KEY_ID" = "mykey",
"AWS_SECRET_ACCESS_KEY" = "mysecretkey",
"AWS_DEFAULT_REGION" = "us-east-1")
library("aws.s3")
Wenn Sie ein R-Objekt haben obj
Sie AWS speichern möchten, und später lesen:
s3save(obj, bucket = "my_bucket", object = "object")
# and then later
obj <- s3load("object", bucket = "my_bucket")
Offensichtlich ersetzen Sie den Bucket-Namen und den Dateinamen (den Namen des Objekts im AWS-Bucket) für echte Werte. Das Paket hat auch eine entsprechende s3save
Funktion. Sie können auch im RDS-Format mit s3saveRDS
und s3readRDS
speichern und laden.
Wenn Sie eine Textdatei lesen müssen, dann ist es etwas komplizierter, da die Funktion ‚get_object‘ Bibliothek einen rohen Vektor zurückgibt, und wir haben es uns selbst zu analysieren:
raw_data <- get_object('data.csv', 'my_bucket')
# this method to parse the data is copied from the httr library
# substitute encoding from as needed
data <- iconv(readBin(raw_data, character()), from="UTF-8", to="UTF-8")
# now the data can be read by any R function, eg.
read.csv(data)
fread(data)
# All this can be done without temporary objects:
fread(iconv(
readBin(get_object('data.csv', 'my_bucket'), character()),
from="UTF-8", to="UTF-8"))
Ihre Vorstellung von einem 'signierte URL' ist nicht verfügbar, soweit ich weiß. Ein Vorbehalt, sollten Sie versuchen, eine solche Lösung zu entwickeln: Es ist wichtig, an die Sicherheitsimplikationen zu denken, die sich aus der Speicherung Ihres geheimen Zugriffsschlüssels im Quellcode ergeben.
Eine andere Sorge über die 'signierte URL' ist, dass das Objekt im Speicher gespeichert werden würde. Wenn der Arbeitsbereich gespeichert wird, wird er auf der Festplatte gespeichert. Eine solche Lösung müsste die Sicherheit sorgfältig überprüfen.
Hier ist eine Frage zum Schreiben von Daten direkt auf S3 mit Antwort beim Lesen in den Speicher auch: http://stackoverflow.com/questions/30084595/write-r-data-as-csv-directly-to-s3 – Bulat