Как обслуживать сгенерированные изображения с помощью синатры в рубине - PullRequest
9 голосов
/ 03 марта 2010

Я написал простое приложение Sinatra, которое генерирует изображение с помощью rmagick из некоторых пользовательских входов. Изображение сохраняется в каталоге ./public с уникальным именем файла. Уникальное имя файла используется в HTML, сгенерированном Sinatra, так что каждый пользователь получает правильное изображение. Один раз в день скрипт удаляет файлы старше одного часа. Это явно ужасный взлом, но у меня нет опыта работы в сети!

Есть ли способ передать образ rmagick в sinatra без предварительного сохранения его на диск?

1 Ответ

12 голосов
/ 03 марта 2010

Используйте метод Image#to_blob, чтобы превратить изображение в памяти в строку:

get '/' do
  content_type 'image/png'
  img = Magick::Image.read('logo:')[0]
  img.format = 'png'
  img.to_blob
end
...