Rails S3 carrierwave上传无法正常工作

时间:2016-04-02 20:04:45

标签: ruby-on-rails heroku amazon-s3 carrierwave image-uploading

我一直在努力解决这个问题,尽管我已经搜索了一堆,但我仍然无法找到问题的答案。 我在heroku上有一个Rails站点。我允许用户创建帖子,我希望他们能够添加多个图片。 我正在使用带有carrierwave的Rails 4.2.1并且没有S3直接上传,everthing工作正常。

但是,我想实现直接上传到Amazon S3。 我试图实现Heroku自己的指南:https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails

这很有效。 表单看起来很棒,它就像一个魅力,文件(我仍然只是在一个atm)被上传到亚马逊,带有链接和一切。 但是,它不会显示在我的应用中。

为了让您知道会发生什么,这是我的控制台输出:

Started PATCH "/posts/47" for 127.0.0.1 at 2016-04-02 21:46:47     +0200
Processing by PostsController#update as HTML
Parameters: {"utf8"=>"✓",   "authenticity_token"=>"***auth token***", "posts"=>{"image"=>"//myapp.s3.amazonaws.com/uploads/d886f0c3-f51c-48a6-8e00-30a0a278e298/image-that-i-have-uploaded.jpg", "remote_image_url"=>"", "image_cache"=>"", "remove_image"=>"0", "title"=>"test", "description_short"=>"testdescshort2", "description_long"=>"testdesclong2"}, "button"=>"", "id"=>"47"}

Post Load (1.1ms)  SELECT  "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1  [["id", 47]]

User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ?  ORDER BY "users"."id" ASC LIMIT 1  [["id", 1]]

Post Load (0.1ms)  SELECT  "posts".* FROM "posts" WHERE "posts"."user_id" = ? AND "posts"."id" = ? LIMIT 1  [["user_id", 1], ["id", 47]]

  (0.2ms)  begin transaction

Post Load (0.2ms)  SELECT  "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1  [["id", 47]]

SQL (1.8ms)  UPDATE "posts" SET "image" = ?, "updated_at" = ? WHERE "posts"."id" = ?  [["image", "73811_108472322553034_2478153_n.jpeg"], ["updated_at", "2016-04-02 19:46:48.005926"], ["id", 47]]
 (0.9ms)  commit transaction

Redirected to http://localhost:3000/posts/47
Completed 302 Found in 43ms (ActiveRecord: 4.5ms)

(我已经从中获取了真正的真实性令牌,因为我不确定我是否可以出于隐私原因分享它。)

如您所见,我为上传的图片创建了一个链接。 但是,它不会使用新图像加载帖子。 相反,它会加载已存在的图片。

当我创建一个新帖子时也是如此 - 然后,它只是将图像保存为零。

有人没有我能做的吗? 我确定我只是做了一些简单的错误,但我找不到它。

非常感谢您的帮助!!!!

1 个答案:

答案 0 :(得分:0)