采购存储在AWS S3中的R脚本

时间:2018-02-11 14:37:49

标签: r amazon-s3

我正在开发将由Web应用程序用于生成见解的脚本。在本地机器中,我可以拆分脚本,以便我可以使用source()在后续任务中根据需要执行它们。简化示例如下:

  • 脚本1:计算抵押现金流量
  • 脚本2:计算净额 脚本1中输出的现金流量

这种方法使我只需要维护脚本1一次,因为脚本2直接引用脚本1。我遇到的问题是我无法获得source()来处理我上传到S3存储桶的R脚本。到目前为止我所做的研究让我认为aws.s3包是我需要的工具,但我似乎无法让它工作。

我能够完成以下任务:

url<- 'https://s3.ca-central-1.amazonaws.com/[bucket name]/[bucket sub-folder]/rscript.R'

Sys.setenv("AWS_ACCESS_KEY_ID" = "My access key",
       "AWS_SECRET_ACCESS_KEY" = "My secret access key",
       "AWS_DEFAULT_REGION" = "ca-central-1")

get_bucket(bucket= '[bucket name]')

如果我运行get_bucket,我可以看到它正在我的存储桶中取出文件的名称,我可以访问S3文件夹。但我无法弄清楚如何拉出rscript.R文件

基本上,我希望能够执行

source(rscript.R)

其他潜在选项:我查看了Shiny文档,我的解释是它用于交互式Web图形。如果Shiny实际上适合我的问题,请告诉我。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

使用cloudyr::s3source()

来自README

  

s3source()直接从S3

中获取R脚本

在你的情况下,像这样......

s3source(object = "rscript.R", bucket = get_bucket('[bucket name]'), echo = TRUE)