Cómo servir las imágenes generadas con Sinatra en rubí
Pregunta
Me escribió una sencilla aplicación Sinatra que generan una imagen utilizando RMagick de algunas entradas del usuario. La imagen se guarda en el directorio ./public con un nombre de archivo único. El nombre de archivo único se utiliza en el HTML generado por Sinatra para que cada usuario obtiene la imagen correcta. Una vez al día a la secuencia de comandos elimina los archivos de más de una hora. Esto es claramente un terrible corte pero no tengo ninguna experiencia en la red!
¿Hay alguna manera de servir a la imagen RMagick en Sinatra sin guardar en el disco?
Solución
Utilice el método Image#to_blob
para convertir la imagen en memoria en una cadena:
get '/' do
content_type 'image/png'
img = Magick::Image.read('logo:')[0]
img.format = 'png'
img.to_blob
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow