如何使用ruby将S3存储桶中的文件内容下载到内存中?

这里是ruby的新手,

我在Amazon AWS S3中有一个存储桶,其中有一个名为users.csv的文件

如何将这个文件的内容从S3存储桶加载到内存中?

我希望能够在将文件加载到内存后解析该文件的内容。

这是我的代码:

 require 'aws-sdk' s3 = Aws::S3::Resource.new(region: 'us-west-1') resp = s3.list_objects(bucket: 'bucket-name', max_keys: 1) resp.contents.each do |object| puts #{object.value} end 

当我在IRB中尝试这个时,我得到:

struct Aws :: S3 :: Types :: Object key =“users.csv”,last_modified = 2017-11-15 19:10:28 UTC,etag =“\”9a3d50c07aa4aa6976037ce774294a26 \“”,size = 101,storage_class =“ STANDARD“,owner = struct Aws :: S3 :: Types :: Owner display_name =”owner-name“,id =”42093cfa4ccb23a8156cdab8500a41a10bdbf90deebb0ee8a3b340dd1e0c3622“

如何解析users.csv中的内容?

从AWS文档:

将对象下载到内存中对于小对象,获取对象并在Ruby进程中使用它可能很有用。 如果没有为下载指定:target,则整个对象将加载到内存中,形成StringIO对象。

 def import_from_s3 #initiate the client s3 = Aws::S3::Client.new({ region: region, access_key_id: key_id, secret_access_key: secret }) #Get the object resp = s3.get_object(bucket: bucket, key: key) resp.body #=> # resp.body.read #=> '...' Call #read or #string on the StringIO to get the body as a String 

宾语。

有关更多信息,请访问: https : //aws.amazon.com/blogs/developer/downloading-objects-from-amazon-s3-using-the-aws-sdk-for-ruby/