Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails api中使用回形针时检索AWS存储图像的链接_Ruby On Rails_Heroku_Amazon S3_Paperclip_Rails Api - Fatal编程技术网

Ruby on rails 如何在Rails api中使用回形针时检索AWS存储图像的链接

Ruby on rails 如何在Rails api中使用回形针时检索AWS存储图像的链接,ruby-on-rails,heroku,amazon-s3,paperclip,rails-api,Ruby On Rails,Heroku,Amazon S3,Paperclip,Rails Api,我有一个rails api,其中我使用回形针存储图像,这些图像存储在S3存储桶中 这是我上传的heroku日志 [paperclip] saving /feeds/images/000/000/025/original/test.png 2016-08-10T07:53:14.814789+00:00 app[web.1]: [AWS S3 200 0.480788 0 retries] put_object(:acl=>:public_read,:bucket_name=>"",:

我有一个rails api,其中我使用回形针存储图像,这些图像存储在S3存储桶中

这是我上传的heroku日志

[paperclip] saving /feeds/images/000/000/025/original/test.png
2016-08-10T07:53:14.814789+00:00 app[web.1]: [AWS S3 200 0.480788 0 retries] put_object(:acl=>:public_read,:bucket_name=>"",:content_length=>589015,:content_type=>"image/png",:data=>Paperclip::UploadedFileAdapter: test.png,:key=>"feeds/images/000/000/025/original/test.png")
我想做的是检索存储此图像的链接,即,/feeds/images/000/000/025/original/test.png,并将其存储在我的数据库中以备将来下载。有人能指出我如何访问这个关键字段吗

我知道S3每次都会将它保存在一个默认位置,比如/model/object/000/(新记录的id)/original/file\u name,但我想访问它存储图像的确切位置,而不仅仅是猜测

编辑2

检索的问题已经解决,但是存储链接仍然有点不稳定

这是我拍摄图像的方法

def create
id = params[:uid]
msg = params[:message]
img = params[:image]
feed = Feed.new({user_id: id, message: msg, like_count: 0, comment_count: 0, image: img})
feed.imageurl = feed.image.url(:medium)
feed.smallimageurl = feed.image.url(:thumb)
if feed.save
  render json: feed.as_json(only:[:id]), status:201
else
  render json: {errors: "Could not create post"}, status: 422
end
end
当我上传任何图片时,它会将链接存储为 “?”

查看如何在图像和介质之间丢失/000/000/026

但是当我这么做的时候 Feed.find(26.image.url)(:medium)

“?”


我知道问题出在哪里,那就是我需要在图像链接存储到S3或其他东西之后再存储它。

回形针为您提供了这一功能。方法可能是:

Feed.find(12345).image.url
您可以通过以下方式获得样式列表:

Feed.find(12345).image.styles
。。。以及具有以下内容的特定用户的URL:

Feed.find(12345).image.url(:thumb)

成功了,有没有办法获得我保存的媒体和拇指图像?嘿,我编辑了这个问题。你能看一下edit2吗?谢谢只需在读取URL之前保存feed的实例——URL取决于id,在发出保存之前,id是未知的。事实上,我根本不会使用feed.imageurl或feed.smallimageurl——您可以在不存储它们的情况下读取它们。但如何将它们作为json返回?您能否以某种方式将其与render json:feed.as_json(仅:[:id])一起返回,状态:201?保存提要工作。你帮了大忙!谢谢:)