将静态JSON数据导出到Amazon S3并通过AJAX检索

Vie*_*iet 4 json ruby-on-rails amazon-s3 amazon-web-services ruby-on-rails-3

在我的Rails 3应用程序上,我想将静态JSON数据导出到Amazon S3存储桶,稍后可以通过该应用程序的AJAX调用进行检索和解析。

JSON将从应用程序的数据库生成。

我的设计要求可能只需要诸如rake任务之类的操作,即可开始导出到S3。每次启动rake任务时,它将覆盖文件。优选地,文件名将对应于从其生成JSON数据的记录的ID号。

有没有人对此有任何经验,可以指出正确的方向?

ros*_*sta 6

这可以通过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))
Run Code Online (Sandbox Code Playgroud)

查看S3Object文档以获取更多信息。