Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Требуется скрипт для распаковки zip, rar, 7z, tar архивов на сервере. Сервер на debian 6. Язык программирования на ваш выбор.

Есть сайт с деревом файлов (типа проводника windows). Структура дерева хранится в mysql, файлы на диске. Требуется постоянно мониторить БД и, при появлении в дереве zip, rar, 7z, tar архива, распаковывать его. Распакованными файлами замещать сам архив в дереве, архив удалять Алгоритм такой:

1) Ищем архивы в БД и берем первый попавшийся

2) Распаковываем

3) Создаем в БД папку с именем архива в том же каталоге, где был архив.

4) Создаем в этой папке структуру файлов из архива

5) Удаляем архив с диска и БД

6) Переходим к пункту 1

Таким образом, должны быть распакованы все архивы, включая вложенные. Если архивов больше нет, скрипт должен просто ждать появления новых.

Нужно учесть:

• Если архив не удалось распаковать (поврежден или не хватает частей многотомного архива), то он должен быть удален + сообщение об этом должно быть добавлено в специальную таблицу в БД.

• Если в архиве есть файлы больше 50Мб, они должны быть удалены + сообщение об этом должно быть добавлено в специальную таблицу в БД. Должна быть возможность изменить предельный размер файлов (50Мб) в настройках скрипта.

• В архивах может быть несколько файлов с одинаковым именем в одной папке. При распаковке нужно добавлять к имени дублей “ 1”, “ 2”, “ 3” и т.д.

• В папке, где находился архив до распаковки, может уже быть папка с именем архива. Соответственно к создаваемой папке нужно добавить “ 1”, “ 2”, “ 3” и т.д.

• При распаковке удалять файлы Thumbs.db (это кеш предпросмотра виндового проводника)

• При распаковке удалять файлы, которые начинаются с символов ~$ (это временные файлы MS Office) Например “~$анц кухня.doc”

• Нужно учитывать, что пользователи непрерывно продолжают работать с деревом на сайте и архив в любой момент может быть перемещен или удален. Соответственно замена архива в БД на распакованную папку должна производиться в последний момент. Если архив был перемещен во время распаковки, то поместить распакованные файлы нужно в новое местоположение. Если архив был удален, то нужно удалить распакованные файлы.

• Нужно обойти такой хак. В архиве может быть файл на несколько терабайт забитый нулями. Сам архив при этом будет довольно маленьким и подвоха не заметить. Но при распаковке место на сервере кончится и сервер ляжет.

11 лет назад
mihse
38 летТаиланд
16 лет в сервисе
Был
месяц назад
Выбранный исполнитель
izimodo
Артем 
35 летУкраина
14 лет в сервисе
Был
год назад
11 лет назад
$160
5 дней
Артем супер спец по python. Сделал все быстро и качественно.
Михаил - идеальный заказчик. Четко ставит задание, корректен в общении, дает возможность поработать, не "напрягая" расспросами раньше срока. Моментальная оплата, даже больше изначально оговоренной. Надеюсь на дальнейшее сотрудничество.
  • Похожие заказы
  • $100

    Есть сайт на самописной CMS http://vgazele.ru/ с него нужно весь контент (примерно 450 материалов-статей) перенести на новый сайт http://test.vgazele.ru/ с сохранением всех урл. Другими словами: у сайт поменяли движок и дизайн теперь ...

    Закрыт
    11 лет назад
  • Довести до ума, причесать, сократить время загрузки страниц, уменьшить нагрузку на CPU и MySQL, убрать косяки оформления и юзабилити. Аудит не делался, ТЗ нет. Поэтому в предложениях просьба указывать: что будет сделано, что получу в результате, ...

    Закрыт
    11 лет назад
  • Нужен скрипт каталога ссылок/статей на Smartе или другом чтобы шаблон натянуть. Как должен работать скрипт на 1 сайте ведомом будет размещаться он, заходишь в админку, загружаешь пакетом (или по одной) ссылки/статьи, выбираешь рубрику на сайте донора, ...

    Закрыт
    11 лет назад
  • $50

    Требуется срочно переделать калькулятор для сайта банка. Калькулятор ипотеки. Задача: 1. добавить в калькулятор слайдеры (jsilder) изменение параметров слайдера (изменить максимальную сумму, срок), 2. изменить условия работы калькулятора (добавить новые условия) 3. изменить/добавить тарифы для кредитных ...

    Закрыт
    11 лет назад
  • Необходимо написать граббер для freelance.ru и спарсить всех фрилансеров с него. Грабер должен быть на php. Грабим в mysql базу. Формат базы предоставим (три таблицы: фрилансеры, категории, таблица соответствия фрилансер-категория). В заявках ожидаю увидеть стоимость и ...

    Завершен
    11 лет назад
  • $50

    Разбираетесь в Webasyst? пишите скорее. нужен человек, который отлично разбирается в webasyst, чтобы переделать некоторые вещи на сайте. примеры переделок: -плохо отображаются фотографии при просмотре категории(видимо из-за неправильных настроек при сжатии фото) -сделать работающую кнопку "быстрый заказ", которая при нажатии ...

    Закрыт
    11 лет назад
  • $500

    Доброго времени суток! Необходимо разработать корпоративный сайт с функцией интернет магазина, без модулей оплаты. Работа по принципу оформление заказа->отправка на e-mail. Но, есть ряд других функций, которые бы хотелось обсудить при личной беседе. В дальнейшем, ...

    Завершен
    11 лет назад