如何将文件从 heroku rails 3 AWS v1 传输到 S3

How does one transfer files to S3 from heroku rails 3 AWS v1

在我的 rails 3 应用程序中,我会在用户执行操作时生成一个文件。这个文件需要是永久的。所以这个文件需要存储在像S3 AWS这样的地方。使用 S3 AWS (aws-sdk v1) 执行此操作的最简单方法是什么?

图像是使用 gem barby (https://github.com/toretore/barby) 生成的,因此用户不需要上传它。

使用 Ruby 的 AWS 开发工具包将文件复制到 S3。 official documentation 几乎为您提供了代码:

require 'aws-sdk'

s3 = Aws::S3::Resource.new(region:'us-west-2')
obj = s3.bucket('bucket-name').object('key')
obj.upload_file('/path/to/source/file')

正确的标记 B!这是版本 AWS SDK 版本 2。 对于版本 1,其:

require 'aws-sdk'
s3 = AWS::S3.new
# Upload a file.
key = File.basename(file_name)
s3.buckets[bucket_name].objects[key].write(:file => file_name)