Skip to content

kikht/kmlpack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Средство для упаковки кучи мелких файлов в один большой и раздачи их апачем 
как будто они лежат как есть. Для хранения файликов используется Berkeley DB.

Состав:
    kmlpack.c   - программа для упаковки папки с файлами
    kmlunpack.c - программа для распаковки обратно
    kmlfile.php - скрипт выдергивающий из архива один файл
    kmdb.conf   - пример настройки mod_rewrite, перенаправляющий запросы 
                  к kmlfile.php
    Makefile
    README


Использование:

1.  Для работы потребуются пакеты libdb и php-dba.

2.  Собрать программы.

3.  В kmdb.conf исправить имя папки, в которой будут лежать базы с kml 
    (в дальнейшем <path_to_kml>), и параметр RewriteBase - путь на веб-сервере.
    Скормить конфиг апачу.

4.  Положить в <path_to_kml> скрипт kmlfile.php

5.  Взять папку с kml за день (например 2012034) и упаковать её 

        kmlpack <path_to_kml>/2012034/ 2012034.db

6.  Положить полученный архив в <path_to_kml>, удалить исходную дневную папку. 


Примечания:

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

2.  Скрипт и конфиг апача предполагают, что мы имеем дело только с дневными
    папками, которые имеют имена YYYYddd, а соответствующие им архивы 
    YYYYddd.db Все остальное будет игнорироваться.
    kmlpack, kmlunpack без разницы, что и куда паковать/распаковывать.

3.  kmlpack добавляет файлы к базе, если она уже существует. 
    Можно докидывать новые витки в течении дня.

4.  kmlunpack нужна исключительно для того, чтобы вернуть всё к исходному
    состоянию, для работы скрипта она не нужна. Вызвается так:

        kmlunpack <db_file> <path>

5.  Можно одновременно хранить запакованные и незапакованные kml. 
    Перенаправление на скрипт срабатывает только если статический файл 
    отсутствует в каталоге.

Автор: Владимир Кихтенко <kva911@gmail.com>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages