【发布时间】:2016-07-22 13:08:57
【问题描述】:
我已经为此苦苦挣扎了一段时间,即使我用谷歌搜索了一堆,我仍然找不到我的问题的答案。 我在 heroku 上有一个 Rails 站点。我允许用户创建帖子,我希望他们能够添加多张图片。 我正在使用带有载波的 Rails 4.2.1,没有 S3 直接上传,一切正常。
但是,我想实现直接上传到 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)
(我已经从中取出了真正的真实性令牌,因为出于隐私原因我不确定我是否可以分享它。)
如您所见,为我上传的图片创建了一个链接。 但是,它不会使用新图像加载帖子。 相反,它会加载已经存在的图片。
当我创建一个新帖子时也会发生同样的情况 - 然后,它只是将图像保存为 nil。
有人不知道我能做什么吗? 我确定我只是在做一些简单的错误,但我找不到它。
非常感谢您的帮助!!!!
【问题讨论】:
-
当您在浏览器中访问该图片网址时会发生什么?
-
下载图片。难道错误来自丢失的“http:”?如果是这样,我该如何解决?
-
@AnthonyTo 你知道我能做什么吗?该链接似乎有效。
标签: ruby-on-rails heroku amazon-s3 carrierwave image-uploading