Простой сервер изображений

У меня есть куча изображений, в которых мне нужны другие, чтобы просматривать через веб-браузер практически так же, как Apache-Gallery.

Я мог бы сбросить все мои изображения в каталоге, чтобы пользователи нажимали:

http://server:port/directory

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

Я ищу решение без Apache, так же, как замечательный простой HTTP-сервер Python, который можно запускать в любом месте с минимальной конфигурацией и суеткой, например.

python -m SimpleHTTPServer 8000

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

С удовольствием использую приложение, написанное на любом распространенном языке, если оно самодостаточно и может работать на linux на пользовательском порту (и повторять итерацию, а не модуль Apache).

UPDATE

Я просто нашел python script, называемый curator, который прост в запуске. Он генерирует требуемые большие пальцы и статические html из любых изображений в каталоге, на который вы указываете его, после чего вы можете использовать SimpleHttpServer для публикации результатов.

Ответ 1

Спасибо за ответы и комментарии. Решение, которое я закончил использовать, было в соответствии с моим обновлением:

  • Запустите curator в каталоге, содержащем все мои изображения. Это генерирует большие пальцы и индексную страницу, а также разбиение на страницы на все полноразмерные изображения.
  • Запустите "*python -m SimpleHTTPServer 8000*" в этом каталоге, чтобы просмотреть полученный html файл, созданный куратором

Итак, это простой двухэтапный процесс, который в значительной степени удовлетворяет моим первоначальным требованиям.

Ответ 2

Это было совсем давно, но я только что начал imageMe, целью которого является выполнение именно этой потребности. Вы можете настроить его с инструкциями на сайте, но если вы просто хотите обслуживать базовую галерею изображений в и ниже вашего текущего местоположения, эта команда будет запускать ее на порту 8000:

curl https://raw.githubusercontent.com/unwitting/imageme/master/imageme.py | python

Надеюсь, это поможет кому-то еще подойти, чтобы ответить на этот вопрос!

Ответ 3

Хотя он не использует класс SimpleHTTPServer, этот cgi-bin script показывает, как отображать изображения очень просто. Расширьте его, чтобы он соответствовал вашим потребностям. Источник здесь.

from os import listdir
from random import choice

ext2conttype = {"jpg": "image/jpeg",
                "jpeg": "image/jpeg",
                "png": "image/png",
                "gif": "image/gif"}

def content_type(filename):
    return ext2conttype[filename[filename.rfind(".")+1:].lower()]

def isimage(filename):
    """true if the filename extension is in the content-type lookup"""
    filename = filename.lower()
    return filename[filename.rfind(".")+1:] in ext2conttype

def random_file(dir):
    """returns the filename of a randomly chosen image in dir"""
    images = [f for f in listdir(dir) if isimage(f)]
    return choice(images)

if __name__ == "__main__":
    dir = "c:\\python\\random_img\\"
    r = random_file(dir)
    print "Content-type: %s\n" % (content_type(r))
    print file(dir+r, "rb").read()