从R访问S3存储桶

use*_*555 8 r amazon-s3 amazon-ec2 amazon-web-services

我在AWS上的EC2实例上设置了R.我有很少的csv文件上传到S3存储桶.我想知道是否有办法从R访问S3存储桶中的csv文件

任何帮助/指针将不胜感激.

Joh*_*all 8

看看cloudyr aws.s3软件包(https://github.com/cloudyr/aws.s3),它可能会满足您的需求.不幸的是(在撰写本文时),这个包很早就有点不稳定了.

仅使用R的system()命令调用AWS CLI,我就取得了很大的成功.这相对容易上手,非常强大且得到很好的支持.

  1. 从这里开始:http://aws.amazon.com/cli/
  2. 使用S3 API列出对象:http://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects.html
  3. 使用S3 API获取对象:http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html

因此,例如,在命令行上尝试以下操作:

pip install awscli
aws configure
aws s3 help
aws s3api list-objects --bucket some-bucket --query 'Contents[].{Key: Key}'
aws s3api get-object --bucket some-bucket --key some_file.csv new_file_name.csv
Run Code Online (Sandbox Code Playgroud)

在R中,可以执行以下操作:

system("aws s3api list-objects --bucket some-bucket --query 'Contents[].{Key: Key}' > my_bucket.json")
Run Code Online (Sandbox Code Playgroud)


小智 0

输入以下命令:install.packages("AWS.tools")

从那里,使用s3.get()命令。该Help选项卡应该告诉您参数的内容。

  • 应维护者的要求,AWS.tools 已被归档为 CRAN,维护者现在正在开发名为 Rawscli 的替换包。 (2认同)