我推薦CloudyR項目中的包aws.s3
。
安裝該軟件包:
# stable version
install.packages("aws.s3", repos = c("cloudyr" = "http://cloudyr.github.io/drat"))
# on windows you may need:
install.packages("aws.s3", repos = c("cloudyr" = "http://cloudyr.github.io/drat"), INSTALL_opts = "--no-multiarch")
一旦安裝,你可以閱讀該文件中,就像這樣:
library("aws.s3")
r = aws.s3::get_object(bucket = "bucket",object = "object.csv")
由於@Thomas在評論中提到,如果你知道文件類型,你可以使用read_using()
函數結合fread
或read_csv
或您通常使用的任何R函數。這樣在檢索數據後保存瞭解析步驟。
如果您的憑證已經是環境變量,則幾乎不需要設置。否則,您可以像這樣添加它們:
Sys.setenv("AWS_ACCESS_KEY_ID" = "mykey",
"AWS_SECRET_ACCESS_KEY" = "mysecretkey",
"AWS_DEFAULT_REGION" = "us-east-1",
"AWS_SESSION_TOKEN" = "mytoken")
還支持多個AWS賬戶。你可以找到CloudyR項目和它的文檔在這裏:
https://github.com/cloudyr
具體來說,CloudyR的AWS S3 API客戶端的網頁是在這裏找到:
https://github.com/cloudyr/aws.s3
謝謝您的答覆。我得到了這個工作。問題是你不能使用變量r。它不是以人類可讀的格式。就像我想要一個變量,當文件是S3中的文件的本地文件時,該變量相當於read_csv(文件)。 – Ark
如果您知道對象是csv,那麼您可以嘗試使用'aws.s3 :: read_using()'而不是'get_object()'來使用通常用於csv的任何導入函數來讀取內容。 – Thomas
@Ark我剛剛重新登錄並閱讀了兩條評論。謝謝托馬斯給他的指導,如果你不介意的話,我會把這個評論加到我的答案中。我會適當地引用你。 –