Paperclipped on Heroku?

旧街凉风 提交于 2019-12-21 04:07:31

问题


I was curious if anyone could get paperclipped working on Heroku without using S3. I'm assuming Heroku is a read-only system, but there must be some way to save images there.


回答1:


You can't write to Heroku's file system, so no, there is no way to save images the way you want. Your options are using a service like S3, or storing them in the database. I recommend using S3, because databases are not optimized for file storage. It's worth reading Heroku's documentation on file uploads.




回答2:


You may save images to the log and tmp directories.

However, that's a horrible, horrible idea.

  • If you git push heroku, your application will be deployed to a new dyno. The new dyno will not have the images, and the images will be forever gone.

  • If you have two dynos, and one dyno saves the image, the image will not be available to the next dyno.

So, effectively, there is no good way to save images to the filesystem.

If you want, you can write your own an adapter for Paperclip that will store images in the database.

But really, you should store images in S3 when you use Paperclip on Heroku, because it's the easy default way to do it.




回答3:


As an aside, this is also the same reason why SASS requires a plugin on Heroku, limited access to disk. I use Paperclip in a number of apps on Heroku, as others have said, S3 hands down is the way to go.




回答4:


This is for someone like me who doesn't own a credit card and still wants to get this to work as you need to provide credit card credentials to use S3. Cloudinary Gem here allows Rails models managed via Paperclip to store image and file assets on a Cloudinary instance. I only had to add the yaml file to my config directory and specify the storage, path in my model as follows.

has_attached_file :image,
  :storage => :cloudinary,
  :path => ':id/:style/:filename'

Refer the above link for more details.




回答5:


Maybe Amazon EBS can be used with Heroku -- or is it too low level?



来源:https://stackoverflow.com/questions/5096588/paperclipped-on-heroku

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!