从R访问S3存储桶

时间:2014-10-09 00:06:02

标签: r amazon-web-services amazon-ec2 amazon-s3

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

任何帮助/指示都将不胜感激。

3 个答案:

答案 0 :(得分: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
  4. 因此,例如,在命令行上尝试以下操作:

    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
    

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-2)

安装libdigest-hmac-perl包;

sudo apt-get install libdigest-hmac-perl