Вопрос

Я развернул приложение Ruby on Rails в Heroku и понял, что у них есть файловая система, доступная только для чтения (http://docs.heroku.com/constraints#read-only-filesystem).Это означает, например, что я не могу кэшировать изображения локально.Я использовал драгоценный камень Ruby под названием «Rio» (Ruby Input/Output), который позволял мне сохранять файлы в каталоге /public/images.Есть ли хорошие хостеры, которые позволяют это?В частности, я смотрел на Rackspace Cloud.Было бы очень полезно узнать заранее, прежде чем я попытаюсь развернуться где-нибудь еще!

Это было полезно?

Решение

Для этого вам не нужно менять хосты.

С помощью Heroku вы можете писать в каталог RAILS_ROOT/tmp.Просто нет гарантии, что они останутся между запросами, потому что разные запросы могут обслуживаться с разных динамометров, а каталог tmp периодически очищается.

Таким образом, вы можете загрузить свои изображения в этот каталог, выполнить любую необходимую обработку, а затем загрузить их на S3 (я бы порекомендовал для этого Delayed::Job, если вы еще его не используете).

Другие советы

Я только что погуглил «бесплатный рубиновый хостинг», и получил много-много результатов.Я бы посоветовал просмотреть некоторые из них.

Обновлять: Я только что понял, что Heroku занимает первое место в этом списке, но есть и множество других.

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

Думаю, не стоит гоняться за "облачными" предложениями.«облако» решает проблему, которой у вас нет (пока).«Облако» делает ваше приложение «бесконечно» масштабируемым. Если вы добьетесь успеха, ваш сайт получит SlashDotted или что-то в этом роде.

То, что вам нужно, — это хостинг от дешевого до бесплатного, который предлагают провайдеры, которые «занимаются» виртуальным хостингом (собирая множество людей на один физический хост, чтобы сократить расходы на каждого), или бесплатный хостинг для бедных разработчиков с открытым исходным кодом.

Одним из решений, если вы хотите использовать Heroku, было бы не размещать изображения у них дома.Но на Амазоне.
Ваше приложение может делать с изображениями все необходимое, а затем отправлять их на платформу Amazon S3.
Затем, когда вы захотите отобразить изображение, вы можете просто дать ссылку на него на Amazon.

Скрепка для бумаг позволяет довольно легко отправлять изображения на S3.

Я не уверен насчет Heroku, но, отвечая на ваш вопрос об облачных файлах Rackspace, облачные файлы не предоставляют блочного хранилища, а есть только API для загрузки/извлечения/и т. д.файлы.

Предполагается, что какая-то оболочка-фьюз будет отображать ваши облачные файлы как файловую систему, по крайней мере, в Linux/Macosx:

https://github.com/redbo/cloudfuse/

есть еще JungleDisk, который завязан на облачные файлы, но это целая полноценная инфраструктура.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top