在我的 Rails 3 应用程序中,我想将静态 JSON 数据导出到 Amazon S3 存储桶,以后可以通过来自所述应用程序的 AJAX 调用来检索和解析。
JSON 将从应用程序的数据库中生成。
我的设计要求可能只需要像 rake 任务这样的东西来启动到 S3 的导出。每次启动 rake 任务时,它都会覆盖文件。优选地,文件名将对应于生成 JSON 数据的记录的 ID 号。
有没有人有这方面的经验并且可以指出我正确的方向?
在我的 Rails 3 应用程序中,我想将静态 JSON 数据导出到 Amazon S3 存储桶,以后可以通过来自所述应用程序的 AJAX 调用来检索和解析。
JSON 将从应用程序的数据库中生成。
我的设计要求可能只需要像 rake 任务这样的东西来启动到 S3 的导出。每次启动 rake 任务时,它都会覆盖文件。优选地,文件名将对应于生成 JSON 数据的记录的 ID 号。
有没有人有这方面的经验并且可以指出我正确的方向?
这可以使用aws-sdk gem 来完成。
您的任务可以分为两个基本步骤:1)使用您的 json 数据生成一个临时本地文件,2)上传到 S3。一个非常基本的程序示例:
require 'aws-sdk'
# generate local file
record = Record.find(1)
file_name = "my-json-data-#{record.id}"
local_file_path = "/tmp/#{file_name}"
File.open(local_file_path, 'w') do |file|
file.write(record.to_json)
end
# upload to S3
s3 = AWS::S3.new(
:access_key_id => 'YOUR_ACCESS_KEY_ID',
:secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
bucket = s3.buckets['my-s3-bucket-key']
object = bucket.objects[file_name]
object.write(Pathname.new(local_file_path))
查看S3Object 文档了解更多信息。