在 Rails-api 中使用回形针时如何检索 AWS 存储图像的 link
How to retrieve the link where AWS stored the image while using paperclip in 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=>"",:content_length=>589015,:content_type=>"image/png",:data=>Paperclip::UploadedFileAdapter: test.png,:key=>"feeds/images/000/000/025/original/test.png")
我想要做的是检索存储此图像的 link 即 /feeds/images/000/000/025/original/test.png 并将其存储在我的数据库中供以后下载。有人可以指出我如何访问这个关键字段吗?
我知道 S3 每次都会将其保存在默认位置,例如 /model/object/000/000/(新记录的 ID)/original/file_name,但我想访问它存储图像的确切位置而不是随便猜想。
编辑 2
检索问题已解决,但存储 links 仍然不稳定。
这是我拍摄图像的方法
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
When I upload any image it's storing the link as
"http://s3.amazonaws.com/example/feeds/images//medium/458989879.jpg?"
看到 /000/000/026 是如何在图像和媒体之间丢失的吗?
However when I do this
Feed.find(26).image.url(:medium)
"http://s3.amazonaws.com/example/feeds/images/000/000/026/thumb/458989879.jpg?"
我知道问题出在哪里了,就是图片link存储到S3之类的东西后需要存储
Paperclip 为您提供。方法很可能是:
Feed.find(12345).image.url
您可以通过以下方式获取样式列表:
Feed.find(12345).image.styles
... 和 URL 对于特定的那些具有:
Feed.find(12345).image.url(:thumb)
我有一个 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")
我想要做的是检索存储此图像的 link 即 /feeds/images/000/000/025/original/test.png 并将其存储在我的数据库中供以后下载。有人可以指出我如何访问这个关键字段吗?
我知道 S3 每次都会将其保存在默认位置,例如 /model/object/000/000/(新记录的 ID)/original/file_name,但我想访问它存储图像的确切位置而不是随便猜想。
编辑 2
检索问题已解决,但存储 links 仍然不稳定。
这是我拍摄图像的方法
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
When I upload any image it's storing the link as "http://s3.amazonaws.com/example/feeds/images//medium/458989879.jpg?"
看到 /000/000/026 是如何在图像和媒体之间丢失的吗?
However when I do this Feed.find(26).image.url(:medium)
"http://s3.amazonaws.com/example/feeds/images/000/000/026/thumb/458989879.jpg?"
我知道问题出在哪里了,就是图片link存储到S3之类的东西后需要存储
Paperclip 为您提供。方法很可能是:
Feed.find(12345).image.url
您可以通过以下方式获取样式列表:
Feed.find(12345).image.styles
... 和 URL 对于特定的那些具有:
Feed.find(12345).image.url(:thumb)