Хранилище файлов Heroku

У Heroku всего 100 МБ файлового хранилища, верно? Я делаю низкоуровневое приложение для рельсов, и мне очень нравится Heroku, но если мое приложение позволяет каждому пользователю загружать одно изображение, мне может быстро не хватить места... есть ли простое решение, которое позволит мне иметь альтернативу файловое хранилище для фотографий профиля или что-то в этом роде?


person Kevin Brown    schedule 11.07.2011    source источник
comment
Хотя вы хотите использовать S3 на Heroku (поскольку файловое пространство является временным и не сохраняется) для хранения таких вещей, как изображения профиля (см. ответ Codeglot ниже), я хочу указать, что ограничение в 100 МБ предназначено только для slug (скомпилированный исходный код и драгоценные камни вашего приложения). В вашем каталоге /tmp могут храниться очень большие файлы (думаю, я слышал разговоры о том, что 4 ГБ можно временно хранить там). Но, опять же, вы потеряете все, что там есть, если ваш динамометр перезапустится, поэтому он предназначен только для использования в качестве временного хранилища, а не постоянного.   -  person Riley Dutton    schedule 12.07.2011
comment
кроме того, см. статью центра разработки Heroku здесь по теме   -  person John Beynon    schedule 12.07.2011


Ответы (3)


См. эту запись в блоге.

В вашей модели.

has_attached_file :picture, 
                   :styles => {:large => "275x450>"},
                   :storage => :s3, 
                   :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                   :path => "appname/:attachment/:style/:id.:extension"

В s3.yml в вашем конфигурационном каталоге:

    development:
      bucket: bucketname
      access_key_id: key
      secret_access_key: key

    production:
      bucket: bucketname
      access_key_id: key
      secret_access_key: key

Затем зарегистрируйтесь для получения корзины на Amazon S3: http://aws.amazon.com/s3/.

person thenengah    schedule 11.07.2011
comment
ссылка мертва. Вы не знаете, есть ли новый? - person Donal Rafferty; 12.02.2015
comment
@DonalRafferty Он все еще на обратном пути. - person Lena; 01.01.2016

Я бы порекомендовал вам проверить надстройку heroku, которая находится https://addons.heroku.com/cloudinary. Вы получите 500 МБ для бесплатной и простой интеграции с heroku.

Для приложения RoR вы можете проверить: https://devcenter.heroku.com/articles/cloudinary#using-with-ruby-on-rails

Также есть документация для Nodejs и Django.

person jmarceli    schedule 29.09.2014
comment
Я нашел Cloudinary идеальным решением, теперь оно предоставляет 10 ГБ бесплатного хранилища. Кроме того, обязательно проверьте это приложение django: github.com/klis87/django-cloudinary-storage требуется только изменить некоторые настройки, в отличие от исходного приложения Cloudinary, которое требует изменения кода в моделях, представлениях и шаблонах! - person Karim Sonbol; 03.08.2018

Да, самое простое решение — использовать api.imgur.com, который позволяет бесплатно загружать 1250 изображений в час.

Вам просто нужно зарегистрироваться и получить свой идентификатор клиента, затем вам нужно отправить почтовый запрос на

https://api.imgur.com/3/upload

с данными изображения в качестве данных формы. Затем вы получаете ссылку на загруженное изображение в ответных данных, которые вы можете сохранить в базе данных, а затем вы можете получить доступ к изображению, как и к любому другому изображению, со ссылкой из внешнего интерфейса.

больше здесь:

ссылка на документацию Imgur API

person Baraja Swargiary    schedule 05.07.2020