Изменения

Vitaphoto

13 089 байтов добавлено, 12:42, 20 июня 2016
Vitaphoto — [[Vitaphoto]] — система управления фотогалереями, обладающая некоторыми уникальными отличительными особенностями, самая главная из которых — заливка фотографий в галерею не через веб-интерфейс, а ''обычным копированием файла в заданную директорию на сервере''. Т.е.То есть, ФС-ориентированность.
На данной странице вы можете узнать об истории и преимуществах системы Vitaphoto над прочими аналогичными. Среди них — удобство использования, гибкость, безопасность и возможность управления множеством галерей на одном сервере.
Посмотреть на [[Vitaphoto ]] '''V3 / 1.4''' в лице моей фотогалереи можно по следующей ссылке: [http://vmx.yourcmc.ru/vitaphoto vitaphotov3 http://vmx.yourcmc.ru/vitaphotovitaphotov3].Гламурная… Ух!
== История создания Vitaphoto ==Старая версия (1.3 / V2) находится по адресу [http://vmx.yourcmc.ru/vitaphoto-legacy http://vmx.yourcmc.ru/vitaphoto-legacy].
Посмотреть исходные коды [[Vitaphoto]] и выросшего из [[Vitaphoto]] фреймворка [[Sway Solstice]] можно здесь: [{{SVN|vitaphoto/solstice/lib-vitaphoto}} (V3) lib-vitaphoto], [{{SVN|vitaphoto/solstice/lib-sway}} (V3) lib-sway Solstice]. Исходники старой версии: [{{SVN|vitaphoto/head/lib}} (legacy) lib], [{{SVN|vitaphoto/head/lib-sway}} (legacy) lib-sway]. == История создания [[Vitaphoto]] == Причиной создания [[Vitaphoto ]] послужило то, что… мне просто захотелось выкладывать фотографии к себе на сайт. Фотохостинги я не люблю — вот лишь небольшой список их недостатков с моей точки зрения:
* имена файлов после заливки, как правило, теряются;
* некоторые сервисы стараются даже запретить выкладывать фотографии в блог без вставки ссылки на сам сервис.
И наоборот, на преимущества вроде кластеризатора фотографий (Flickr), или возможности «отправить ссылку на этот альбом» (Picasa), или возможности онлайн-заказа печати фото (ФотоФайл, НетПринт) мне откровенно наплевать. Иногда, возможно, и было бы интересно поиграться, но не более того. «Социальные сети… Облачность… Интеграция с тем… Интеграция с этим… Интеграция с интеграцией… Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!» (лор).
Возможно, вы и сами уже прочувствовали на себе некоторые из этих недостатков. Обо мне и говорить нечего, меня они просто достали :-)
Потому я и создал [[Vitaphoto]]. Преимущества [[Vitaphoto ]] с моей точки зрения:
* добавление Добавление фотографий и альбомов видеороликов представляет собой обычное копирование файлов, которое можно осуществлять по FTP и в любых объёмах, пока не закончится место на диске. Все скопированные фотографии добавляются в базу данных автоматически. Кстати, это будет легко и для непродвинутых пользователей, ибо даже виндовый Проводник может работать с FTP серверами;.* все метаданные Название и теги фотографии (название, теги) сохраняются в именах файлов, при этом, благодаря созданию символических ссылок на файлы, отсутствуют проблемы при запросе файлов с именами в русских кодировках;время создания извлекается из EXIF-метаданных и метаданных видео.* резервное Резервное копирование просто до безумия — достаточно зайти на сервер по FTP и слить к себе все файлы;.* точно Точно так же просто дать доступ на скачивание всех фотографий кому-либо, заведя отдельную учётную запись FTP;.* и И точно так же просто дать доступ на добавление фотографий кому-либо, не ставя под угрозу собственную безопасность — необходимо завести отдельную учётную запись FTP для подкаталога домашней директории фотогалереи, а в название самой директории включить теги, которыми будет автоматически помечено всё содержимое, и положить в него недоступный на запись через FTP файл «dirinfo» с заданием (по желанию) название кодировки имён файлов и/или автоматически проставляемых на все фотографии подкаталога тегов;* фотографии Фотографии масштабируются по алгоритму Lanczos с использованием программы ImageMagick — это означает качество;* система рассчитана на любое количество галерейImageMagick / GraphicsMagick — иными словами, управляемых одним приложением;* в описании альбома можно пользоваться простым wikiобразным синтаксисом для форматирования текста;«качественные миниатюры»!* Лично мне гораздо удобнее держать мою фотогалерею расположена расположенной на моём сайтесвоём сервере, а не на некотором неизвестном стороннем фотохостинге.* Стабильное по датам разбиение всей фотогалереи на страницы, идентификация фотографий по именам, гламурненький дизайн, несколько размеров фото на выбор.
Система управления фотогалереями [[Vitaphoto ]] написана на языке [[Perl]] 5 с использованием 5 и может запускаться в разных конфигурациях — как простой отдельный HTTP-сервер, под CGI/FastCGI, под управлением запатченного модуля [http://nginx.ru/ nginx] ngx_http_perl_module и модулей Apache 2 .x [[http://perl.apache.org/ mod_perl]] 2.x] или Apache 1.x [http://perl.apache.org/docs/1.0/guide/index.html mod_perl 1.x]. Я старался создать простую и удобную систему со вменяемым исходным кодом. Вменяемым, кстати, исходный код стал не сразу, а только в версии Vitaphoto 1.2, написанной в районе конца февраля — начале марта 2008 года. А может, только в 1.4 (2010 год). :-) Кроме того, мне очень близки идеи Лэрри Уолла, в частности TMTOWTDI (There’s More Than One Way To Do It — «Это можно сделать по-разному»), а также «приятно быть важным, но куда важнее быть приятным». Возможно, они тоже наложили свой отпечаток на систему.
=== Планы ===Разработка системы ведётся, как всегда, эпизодически — по принципу «в попу стрельнуло», а в попу обычно стреляет сделать что-нибудь глобальное. Мелочи не привлекают.
Разработка ведётся эпизодически — по принципу «в попу стрельнуло»== TODO для V3. А в попу обычно стреляет сделать что-нибудь глобальное. Мелочи не привлекают1 / 1.5 ==
Активная в данный момент разрабатываемая версия. Фичи: * Код снова подрос, его нужно привести в более MVP-состояние, разнести на модули / классы страниц.* {{ok}} Обработка изменений в именах директорий в процессе мониторинга, а не только при его начале** {{ok}} Также чтобы при удалении тега, который есть также в имени директории, он не удалялся с файла* Поле выбора тега с автокомплитом* Навигация в начало галереи (к самым старым фотографиям)* (?) Редиректы со старых имён на новые* (?) Режим файлменеджера* {{ok}} X-Accel-Redirect на файл по короткому URL с отдачей Content-Disposition, с целью генерации красивого УРЛа к файлу, при этом отдающего правильное UTF-8 имя файла вне зависимости от кодировки имён файлов на диске** {{warning}} Здесь есть проблема у nginx - он не понимает URL-кодированные адреса в X-Accel-Redirect. [{{SVN|vitalif/trunk/scripts/patch-nginx-x-accel-uri-parsing.diff|co}} Написал патч], его отревьюили, но пока не приняли.* {{ok}} Опция быстрого старта ScaleDaemon’а <tt><nowiki>--skip-initial</nowiki></tt> — отключение изначальной проверки всех файлов на изменения в галерее* (?) Статистика (неплохо бы рисовать простой графичек)* Для видео:** {{ok}} Автоматическое теггирование всех видеороликов тегом "video"** {{ok}} Поддержка нескольких разрешений — ручное добавление уменьшенных версий с тегом "downsampled"** {{ok}} Поддержка pseudostreaming'а, т.е. возможность перемотки при добавленных FLV-метаданных и включённом flv-стриминге в веб-сервере** {{ok}} Разбор FLV-метаданных** Maybe также возможность задавать дату съёмки в имени (ибо в MP4 и пока что WEBM с метаданными беда)* RSS/Atom подписка на новые фотографии!* {{ok}} Путь к шаблонам по умолчанию брать относительно каталога с кодом* <s>Отдельное пространство имён для видео?</s>* {{ok}} Показывать все теги ролика во всплывающей подсказке в списке** {{ok}} Исключая автотег "video"!* (?) Асинхронная подгрузка миниатюр вместо зависания запроса, когда надо много отмасштабировать. Тут нужно обратить внимание на то, чтобы они не ломились кучей (создаются-то всё равно последовательно).* Что-то придумать на тему тегирования фото БОЛЬШИМ количеством тегов, когда результирующее имя файла получается длиннее лимита ОС (255 символов)* Возможность скрыть фото с главной Исправления багов:* {{ok}} Пропуск симлинков* {{ok}} Не обрабатывать левые файлы в каталоге с изображениями (типа *.php, например)* {{ok}} Ошибочное сообщение о пустом альбоме не показывалось* {{ok}} image.ISO Speed Used + image.ISO Speed Rating иногда показывались вместе, дублируя параметр ISO* {{ok}} Угадывание тегов не учитывало наличие фотографий с этими тегами из-за бага в селектбилдере == Vitaphoto V3 / 1.4 == Версия [[Vitaphoto]] V3 / 1.4 соответствует 5 июля 2010 года. [{{SVN|vitaphoto/release/1.4}} Исходные коды 1.4]. Качества: * ''«Текущий взгляд»'«Скажи синтетическим ключам „нет“!»''' Фотографии и альбомы идентифицируются по именам, а не по ID’шникам. * Обычная страничная навигация заменена разбиением по датам.* Огламуренный интерфейс, дизайн на флоатах и несколько размеров фото на выбор (viva большие мониторы!). Дошло аж до Drag’n’Drop’а.* '''Поддержка видео.'''* Убран «язык запросов по тегам». Заменён выборкой по нескольким тегам.* Убраны «альбомы». Заменены выборкой по нескольким тегам.* Убрана собственная авторизация, добавлена «глобальная» через расширение MediaWiki ([{{SVN|vitalif/trunk/mediawiki/GlobalAuth}} вот оно]).* Добавлено облако тегов.* Поддержка просмотра полной EXIF-информации.* Переписана на [[Sway Solstice]], причём, вместе со ScaleDaemon’ом. Кода меньше раза в 3, он понятнее и расширяемый, а работает лучше. И апача больше тоже нет.* Живёт по адресу [http://vmx.yourcmc.ru/vitaphotov3 http://vmx.yourcmc.ru/vitaphotov3]. Почему идущая после 1.3 версия 1.4 называется также V3? Ответ кроется в версии схемы базы данных — это её третий вариант с момента зарождения. Первая база называлась просто «vitaphoto» (Vitaphoto 1.0, 1.1), вторая несовместимая с первой и заполняемая заново (Vitaphoto 1.2, 1.3) «vitaphotov2», третья и теперешняя «vitaphotov3». === Системные требования === Требуются следующие Perl-модули (установить командой cpan, она же <tt>perl -MCPAN -e shell</tt>):<pre>cpan Log::Log4perl Hash::Merge Net::Server PPI::Document Digest::SHA1 \ URI::Query URI::QueryParam URI::Escape HTTP::Body Image::EXIF \ Cache::FastMmap File::Path CGI::Cookie JSON HTTP::Server::Simple</pre> Также требуется один из модулей Graphics::Magick (из комплекта [http://www.graphicsmagick.org/ graphicsmagick]), {{CPAN|Image::Magick}} или {{CPAN|GD}}. === Анализ V2 === Ниже можно почитать о моём незамутнённом взгляде на V2 в формате «проблема-решение»: плюсы и минусы [[Vitaphoto]] 1.3 глазами меня (автора).По этим плюсам и минусам, а точнее, проблемам и решениям, и построена версия '''Vitaphoto V3 / 1.4'''. Vitaphoto V3 также содержит MediaWiki-расширение для глобальной авторизации. Значок {{ok}} рядом с фичей / решением проблемы означает, что в релизе V3 / 1.4 эта фича уже реализована. ==== Хранение ==== <tab sep=tab class=tableborder1black simpletable head=top>Сейчас V2 Удобно? А как удобно?Выкладывать фотки копированием и хранить свой фотоархив в одном месте, организуя его, как душа пожелает. {{handy}} &nbsp;{{ok}}Отдельный синтаксис у атрибутов файлов (скрытые и т. п.). {{handy|no}} {{ok}} Задавать их такими же тегами, как и всё остальное.Редактировать описания Описания альбомов и выражения в файлах. {{handy|no}} Брать их из статей [[{{SITENAME}}]].
Статические страницы лежат отдельными HTML’ками. {{handy|no}} Брать их из статей [[{{SITENAME}}]].
… С другой стороны, это будет завязка на MediaWiki. {{handy|no}} Хранить все «завязки» в файлах или базе. Из MediaWiki просто экспорт. Причём тут даже никакой демон не нужен — из медиавики экспорт по таким же ссылкам в отдельную папочку, а дальше подключение шаблонизатором.При скачивании фото название теряется. {{handy|no}} {{ok}} Не париться никакими симлинками и выводить ссылкой на сохранение полноразмерного изображения '''настоящее''' имя файла.Независимые ссылки на фотографии по началу имени до первой точки. {{handy}} &nbsp;Создаваемые кучи симлинков усложняют код. {{handy|no}} {{ok}} Пошли они в жопу, эти симлинки! Делать всё кодом, брать из базы и отдавать перенаправление на нужный файл.Все миниатюры хранятся в одном каталоге (direntry кончатся!) {{handy|no}} {{ok}} Хранить миниатюры во вложенных каталогах по '''n''' первым буквам хеша /scaled/WxH/a/a5/a54/a54xxxxx…xxx.jpgВозможность сменить кодировку имён файлов для подпапки. {{handy}} {{ok}}Возможность автоматического теггирования файлов в подпапке. {{handy}} {{ok}}Необходимость задавать эти 2 свойства в файле <tt>dirinfo</tt>. {{handy|no}} {{ok}} Брать их из имени папки: «Имя_Папки (АвтоТеги, KOI8-R)».Невозможность жестоко ликвидировать файл из базы — при удалении только ставится флаг. {{handy|no}} {{ok}} Учитывая, что симлинки — в жопу, флаг «удалён» — тоже в жопу. Просто удалять и всё…… Но тогда придётся заново масштабировать переименованные файлы. {{handy|no}} {{ok}} Ждать окончания очередной цепочки событий, и удалять только в её конце, так как при переименовании гарантированно придёт два события, а не одно.Невозможность скачать сразу набор файлов {{handy|no}} Можно предоставить интерфейс для скачивания сразу тучи файлов, НО по паролю!</tab> ==== Веб-морда ==== <tab sep=tab class=simpletable head=top>V2 Удобно? А как удобно?Независимые ссылки на фотографии по началу имени до первой точки. {{handy}} {{ok}}Ссылки на альбомы содержат синтетический ключ и «нечеловекопонятны». {{handy|no}} {{ok}} Убрать сущность «альбом» вообще к чёртовой матери. Оставить теги + наборы тегов. Скажи синтетическим ключам «нет»! '''[[Vitaphoto: Ссылки]]'''.
Есть комменты. {{handy}} &nbsp;
Но в В них есть разметка-"виласипет" (самодельная), можно сказать её нет никакой разметки. {{handy|no}} Использовать Wiki-разметку, опять-таки, из MediaWiki.… Комменты хранятся отдельно, сбоку, в базе. {{handy|no}} Неплохо бы как-то приспособить к этому страницы обсуждения [[{{SITENAME}}]].
Текстовые части дизайна выглядят очень грустно, «нетипографично». {{handy|no}} Тексты форматировать через [[{{SITENAME}}]].
Голосование («+» и «-» отдельно). {{handy}} &nbsp;{{ok}}Лог голосования хранится в базе. {{handy|no}} Хранить его в файле. Это будет и бэкап.{{ok}}Своя Отдельная база пользователей , и нет регистрации. {{handy|no}} {{ok}} Авторизоваться по базе [[{{SITENAME}}]]. Для прозрачной глобальной аутентификации также нужно можно создать расширение MediawikiMediaWiki.Нет сортировки по дате, извлекаемой из EXIF. {{handy|no}} {{ok}} Добавить её.Нет RSS-лент. {{handy|no}} Добавить их — на каждый альбом.Код веб-приложения так себе организован. {{handy|no}} Перетащить все альбомы, желательно также на [[Sway Solstice]].… Sway::TagAlbum и Sway::TagEntry — ужос. {{handy|no}} Перетащить на [[Funq]]обсуждения фотографий.Нет выборки по дате. {{handy|no}} {{ok}} Добавить её. Как для отдельной фотографии, так и для множества.Язык булевых запросов по тегам, реализованный в базе на PL/SQL. {{handy|no}} Изврат кошмарный. Избавиться. Перетащить либо на софтовую реализацию, либо на join’ы.Нет ссылок на предыдущую/следующую страницу в альбоме. {{handy|no}} {{ok}} Добавить их, а текущие <nowiki>"<" и ">" переименовать в "<<" и ">>"</nowiki>.При обновлении меняются ВСЕ страницы, т.к. разбиение - по числу фотографий. {{handy|no}} Сделать навигацию по датам, а не страницам. Если внутри даты окажется много фотографий - в идеале разбивать их на временные интервалы. В неидеале - забить.Есть «альбомы», нет «облаков тегов». {{handy|no}} {{ok}} Сделать удобную навигацию по тегам и вложенным тегам. Выводить облако для дат, которые видны на текущей странице. Предусмотреть отдельное облако по всем фотографиям альбома. Если мы в теге, выводить облако тегов, встречающихся рядом с этим тегом. Если мы не в теге, выводить облако «независимых от других» тегов. про отдельные «альбомы» забыть: '''[[Vitaphoto:Облака тегов]]'''.Ссылки на альбомы «нечеловекопонятны»Навигация в альбомах по страницам; при обновлении меняются ВСЕ страницы, так как разбиение — по числу фотографий. {{handy|no}} Убрать сущность «альбом» вообще к чёртовой матери. Оставить теги + наборы тегов. Ссылки — {{ok}} Следуя общей идеологии («скажи синтетическим ключам НЕТ») — лучше по именамдате. На набор — сортируются лексикографически, соединяются через /В модном виде — такой скроллер, пробелы заменяются типа. Важный момент: в ссылке на _диапазон дат (если на страницу влезают несколько дат) должна присутствовать минимальная из этих дат, с «неправильных» ссылок идёт постоянный редирект чтобы при возможном добавлении новых дат на правильныету же страницу ссылка не менялась.Навигация альбомов Ещё важный момент: на главной странице чуть другой механизм выбора фотографий (не от начала по страницамдатам, а от конца по датам).Статистика просмотров собирается, но не отображается. {{handy|no}} Лучше Отображать (по дате и если внутри даты очень много фотографий — фотографии, по времени.тегу)!Масса галерей Размер миниатюр в одной БД усложняет кодальбомах фиксирован. {{handy|no}} Для дополнительной галереи гораздо проще создавать дополнительную БД.Возможность сменить кодировку имён файлов для подпапки. {{handyok}} &nbsp;Возможность автоматического теггирования файлов в подпапкеСделать кнопочки для переключения размеров — «маленький», «средний», «большой». {{handy}} &nbsp;Необходимость задавать эти 2 свойства Некрасиво выглядят «вертикальные» фотографии в файле <tt>dirinfo</tt>. общем потоке… {{handy|no}} Брать их из имени папки: «Имя_Папки (АвтоТеги, KOI8-R)».Невозможность жестоко ликвидировать файл из базы — при удалении только ставится флаг. {{handy|nook}} Учитывая, что симлинки — Просто располагать все фотографии в жопу, флаг «удалён» — тоже в жопу«плавающем» порядке с равными '''интервалами'''. Просто удалять и всё…… Но тогда придётся заново масштабировать переименованные файлыОписания альбомов находятся где-то сильно в жопе, внизу. {{handy|no}} Ждать окончания очередной цепочки событий{{ok}} Переделать дизайн на флоаты, и удалять только в её концеописания альбомов минимизировать, так как при переименовании гарантированно придёт два события, а не одноибо нет от них толку.Есть диафильмы. {{handy}}&nbsp;
… Но миниатюры в них крупноваты и всего 3 фото. {{handy|no}} Показывать диафильм мельче и справа, а не сверху.
… Кнопки влево-вправо двигают диафильм, а не переключают фото. {{handy|no}} Добавить мелкие полупрозрачные кнопки по краям диафильма — они пусть двигают диафильм. Большие влево-вправо оставить вверху фото и пусть они ведут на другие фото.
Статистика просмотров собирается, но не отображается. Невозможно «руками» выбрать дату и/или тег {{handy|no}} Отображать (по фотографииСделать поля ввода для выбора. Для тегов — с автокомплитом, по тегу)!для дат — м.б. с календарём?
</tab>
По итогам этих плюсов с минусами, а точнее, минусов с идеями их устранения, и строится следующая версия [[Vitaphoto]]. Как заметили наиболее внимательные читатели, следующая версия будет также содержать собственное расширение для интеграции с MediaWiki.==== Архитектура кода ====
<tab sep=tab class=simpletable head=top>V2 Удобно? А как удобно?Код веб-приложения кривоват и содержит много дублирования. {{handy|no}} {{ok}} Перетащить на [[Sway Solstice]] + [[:Платформы_для_запуска_Perl_веб-приложений#HTTP::Server::Simple|HTTP::Server::Simple]] вместо Апача.Язык булевых запросов по тегам, реализованный в базе на PL/SQL + Sway::TagAlbum / Sway::TagEntry. {{handy|no}} {{ok}} Изврат кошмарный. Избавиться. Перетащить либо на софтовую реализацию, либо на join’ы и [[Funq]]. А вообще-то — просто убрать.Приложение не расширяемое. {{handy|no}} {{ok}} Добавить hook’ов на манер MediaWiki, так как MediaWiki доказывает, что подход работает. '''[[Vitaphoto: Hooks]]'''.Масса галерей в одной БД усложняет код. {{handy|no}} {{ok}} Для дополнительной галереи гораздо проще создавать дополнительную БД.</tab> == Реализовано в Vitaphoto 1.3 ===
Версия [[Vitaphoto ]] 1.3 соответствует 6 сентября 2008 года. [{{SVN|vitaphoto/release/1.3}} Исходные коды 1.3], [{{SVN|vitaphoto/release/1.31}} исходные коды 1.31].
* Язык запросов по тегам, то есть, чтобы была позволена не только логическая операция «И», а также «ИЛИ» и «НЕ»; автоматическое вычисление вхождения альбома в альбом (используется приведение выражения к ДНФ);
** То есть, можно задавать логические выражения (в стандартном базисе :-D) над тегами. Это могут делать все на [http://vmx.yourcmc.ru/s/vitaphotolegacy-static/search.htm странице поиска]. Автоматическое вычисление вхождения подальбома в альбом (сравнение булевых функций, заданных формулами O_o);
* Голосование «за» и «против» фотографий, с возможностью привязки к комментариям;
* Онлайн-конфигурация своей фотогалереи (надо быть root’ом);
* Дальнейшие усовершенствования архитектуры кода (в первую очередь Web-приложения).
=== Реализовано в Vitaphoto 1.2 ===
Версия [[Vitaphoto ]] 1.2 соответствует 8 марта 2008 года. [{{SVN|vitaphoto/release/1.2}} Исходные коды].
* Apache 2.x / mod_perl 2.x вместо Apache 1.x / mod_perl 1.x, логгирование через Log4perl;
* Ведение простой статистики в БД.
=Архитектурные отличия старой версии 1.2 от более новых:* Была завязка на [http://perl.apache.org/ mod_perl] 2.0;* Благодаря созданию символических ссылок на файлы, отсутствуют проблемы при запросе файлов с именами в русских кодировках, но зато теряются полные имена файлов при скачивании;* Чтобы дать доступ на добавление фотографий кому-либо, не ставя под угрозу собственную безопасность — необходимо завести отдельную учётную запись FTP для подкаталога домашней директории фотогалереи, и положить в него недоступный на запись через FTP файл «dirinfo» с заданием кодировки имён файлов и/или автоматически проставляемых на все фотографии подкаталога тегов;* Система рассчитана на любое количество галерей, управляемых одним приложением;* В описании альбома можно пользоваться простым wikiобразным синтаксисом для форматирования текста. == Реализовано в Vitaphoto 1.1 ===
Версия [[Vitaphoto ]] 1.1 соответствует 17 августа 2007 года. [{{SVN|vitaphoto/release/1.1}} Исходные коды].
* Авторизация (по сути бессмысленная, так как ничего не давала);
* Чтение EXIF информации из фотографий.
=== Реализовано в Vitaphoto 1.0 ===
Версия [[Vitaphoto ]] 1.0 соответствует 19 июля 2007. [{{SVN|vitaphoto/release/1.0}} Исходные коды].
* Первая версия фотогалереи;
[[Категория:Sway]]
[[Категория:РазработкаАрхив]]