2013-05-12 54 views
0

我按照给定的说明使用了s3_direct_upload Gem。当我提交带有附加图像的上传表单时,会创建一个新的“上传”项目,但不会将图像发送到S3(或返回显示)。AWS S3使用s3_direct_upload Gem似乎在处理但没有任何内容上传到我的s3存储桶

我有一个user.rb模型通过设计,但我用于图像的模型是upload.rb。

以下是我在提交图像表单时在开发模式下获得的日志。您可以看到,除了创建日期和ID(其他所有内容均为零)之外,没有任何内容添加到新的“上传”项目中。附注 - 我应该在这里看到我的桶名在这个日志(我不)?

附加信息:在我的S3控制台中,我移除了桶。我仍然在下面得到相同的输出。那么,它似乎甚至不会将信息发送给s3?任何想法可能导致什么?

开始POST “/上传” 为127.0.0.1在2013年5月12日19时10分52秒-0400 处理由UploadsController#创建作为/参数: { “UTF8”=>“√ ”, “键”=> “上传/ 1368400251964-ol9ja4ijq0110pb9-bf206 97a98bbff7c58a83d7bfaa84800/$ {文件名}”,以 “acl”=> “公开阅读”, “AWSAccessKeyId” => “AKIAI2EXMFCUTILIGG”, “政策”= >“eyJleHBpcmF0aW9uIjoiMjAxMy0wNS0xM1QwOToxMDo 0N1oiLCJjb25kaXRpb25zIjpbWyJzdGFydHMtd2l0aCIsIiR1dGY4IiwiIl0sWyJzdGFydHMtd2l0aCI sIiRrZXkiLCJ1cGxvYWRzLyJdLFsic3RhcnRzLXdpdGgiLCIkeC1yZXF1ZXN0ZWQtd2l0aCIsIiJdLFs iY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsNTI0Mjg4MDAwXSxbInN0YXJ0cy13aXRoIiwiJGNvbnRlbnQ tdHlwZSIsIiJdLHsiYnVja2V0IjoibGl2ZXBlcmNoIn0seyJhY2wiOiJwdWJsaWMtcmVhZCJ9LHsic3V jY2Vzc19hY3Rpb25fc3RhdHVzIjoiMjAxIn1dfQ == “ ”签名“=> ”f9R5QeLx4nllEKug805CV1 OJTu0 =“, ”success_action_status“=> ”201“, ”X-请求-随着“=> ”XHR“, ” 内容典型值e“=>”image/jpeg“, ”file“=>#>} ←[1m←[36mUser Load(1.0ms)←[0m←[1mSELECT”users“。* FROM”users“ WHERE”users “。”id“= 1 LIMIT 1←[0m←[1m←[35m(0.0ms)←[0m BEGIN
←[1m←[36mSQL(81.0ms)←[0m←[1mINSERT INTO”uploads“ created_at“, ”image_url“,”name“,”product_id“,”updated_at“)VALUES($ 1,$ 2,$ 3, $ 4,$ 5)RETURNING“id”←[0m [[“created_at”,Sun,2013年5月12日23:10:52 UTC +00:00],[“image_url”,无],[“名称” ],[“product_id”,nil], [“updated_at”,Sun,2013年5月12日23:10:52 UTC +00:00]]←[1m←[35m (18.0ms)←[0m COMMIT渲染上传/_upload.html.erb(1.0ms)
渲染uploads/create.js.erb(4.0ms)在127ms内完成200 OK (查看:22.0ms | ActiveRecord:101.0ms)

这里是mu upload.rb模型。

class Upload < ActiveRecord::Base 
    attr_accessible :image_url, :name, :product_id 
    before_create :default_name 
    def default_name 
    self.name ||= File.basename(image_url, '.*').titleize if image_url 
    end 
end 

这是触发发送到s3的图像表单代码。

<%= s3_uploader_form callback_url: uploads_url, callback_param: upload[image_url]", id: "myS3Uploader" do %> 
    <%= file_field_tag :file, multiple: true %> 
<% end %> 

这是gem需要的初始化文件,它包含我的s3信息。我编辑了钥匙和水桶名称。

S3DirectUpload.config do |c| 
     c.access_key_id = "AWS_KEY"  # your access key id 
     c.secret_access_key = "AWS_SECRET_KEY" # your secret access key 
     c.bucket = "AWS_BUCKET_NAME"    # your bucket name 
     c.region = ""    # region prefix of your bucket url (optional), eg. "s3-eu-west-1" 
     c.url = ""     # S3 API endpoint (optional), eg. "https://#{c.bucket}.s3.amazonaws.com/" 
    end 

而且,这里是create.js。erb文件为模型

<% if @upload.new_record? %> 
    alert("Failed to upload: <%= j @upload.errors.full_messages.join(', ').html_safe %>"); 
<% else %> 
    $("#uploads").append("<%= j render(@upload) %>"); 
<% end %> 

我是一个新的铁轨,这一直在推动我坚果。我感谢任何帮助!

回答

0

您应该尝试删除配置URL和区域作为空白字符串,并将它们设置为零或忽略它们。

相关问题