Руководство пользователя

Понятия

Буга Архивариус  -  сайт собранный на локальном веб сервере OpenServer  в дальнейшем именуем:  buArc или сервер. 

Файловый архив,  архив, хранилище - папка (директория) на жестком диске где будут хранится ваши фотографии,  видео, аудио и другими файлы.  
БД  - база данных,  тут где хранятся данные о всех файлах. Это не сами файлы, а информация об этих файлах.  БД работает на MySQL 

Атом - минимальная условно не делимая информационная частица. Пример пост (post) , текстовая страница (page),  категория (category), метка (tag), пользователь (user), картинка (image), видео (video), комментарий (comment)  - это все есть атомы  - простейшие информационные кирпичики из которых строится сайт.  Любые атомы могут быть между собой быть связанны связью родитель-ребенок   parent-child. Этими связями определяются все информационные зависимости. Пример:  иерархические структуры, дерево категорий;  классификации категории, метки, user. 

 

Структура buArc

Buga Archivist (buArc)- это web сайт, собранный на локальном web сервере Open Server . Грубо говоря это ваш домашний облачный сервис за который не надо платить и который никто не отключит за неправильные политические взгляды.   Объем хранилища ограничен объёмом вашего HDD (жесткого диска).  По  супер низким расценкам Google подсчитал, диск окупится за 3 месяца 6 месяцев :) .   Ну и соответственно для доступа к сайту надо использовать любой интернет браузер.  Сайт этот будет располагается у вас на диске. 

Отделим мух от котлет

 buArc располагается в одной папке , а само хранилище файлов в другой папке.   Даже если с веб сервером, что-то случится папка с архивом никак не пострадает все файлы останутся на месте.

Файловый архив (хранилище)  имеет структуру: папкаАрхива\год\месяц\год-месяц-день-час-минут-сек-милисек.jpg  - создается отдельная папка для каждого года и для каждого месяца. Все файлы переименовывается по шаблону год-месяц-день-час-минут-сек-милисек.jpg  

*Структура папок и формат имени файлов задан жестко и не меняется, не мучайтесь.

buArc связывается с папкой архива через символическую ссылку системной командой mklink, поэтому можно без проблем переносить хранилище куда угодно потом в настройка  buArc указать новое место сайт создаст новую связь. Лично у меня и сервер и папка архива расположены на внешнем HDD 6Т для полной автономности и независимости.     

Папку с сервером buArc  также можно переносить. Сервер изначально имеет портативную сборку - независимую от расположения. После переноса сервера возможно придется зайти в настройки  задать папку хранилища нажать Save

Настройка 

Если при первом входе на страницу настроек требует пароль введите 111    Рекомендованные настройки: 

 

* Папка с архивом

Создаем директорию где будут хранится ваш архив например W:\buArchive. Теперь в настройках необходимо установить директорию файлового архива - указываем путь к директории жмем внизу Save . Должно появится сообщение directory link created successfully !!   Если выбросило ошибку Warning: symlink(): Permission denied in - надо перезапустить сервер с правами администратора.  

После нажатия кнопки Save buArc создаст в папке домена символическую ссылку системной командой mklink на папку хранилища, таким образом создается связь сервера и папки с архивом. Папку с архивом можно переносить куда угодно,  после этого в настройках нужно лишь задать новый путь все должно заработать.   

 

Сменить пароль для входа в настройки

Рекомендую сменить пароль, для входа изначально установлен 111 Паролем закрыты страницы редактор и настройки.  Так как это локальный сервер максимум на что можно рассчитывать это открыть его в локальной сети. Не вижу смысла разводить паранойю с аутентификацией. 

Не загружать файлы менее

Укажите размер в байтах ,  при загрузке, файлы у которых размер меньше указанного, будут пропущены. 

Не загружать файлы более

Укажите размер в байтах ,  при загрузке, файлы у которых размер больше указанного, будут пропущены. 

Загружать только типы, через запятую

Через запятую можно указать основной тип файлов (mime type) разрешенных к загрузке, например image,video,audio,archive  - будут загружается только картинки, видео, аудио и архивы (.zip .rar) .   Если надо загружать текстовые фалы добавьте к строке тип text. Поле подробную информацию ищем по запросу основные типы Mime type 

Отключить все проверки, в том числе проверку дубликатов по хеш

Опция принудительной загрузки - предназначена для быстрого отключения\включения всех условий. Допустим когда вы точно уверены,  что вам надо загрузить все файлы из определенный папки включаем опцию, загружаем все, что надо. отключаем опцию.  

Сжимать изображения

В поле выставляем процент компрессии  фотографии например 70%   - это значит  новое фото будут сжато по качеству (не размер файла) , а именно качество компрессии до 70%.  Чем меньше процент тем хуже качество.  Рекомендую включать эту опцию ставить сжатий хотя бы до 95 %  это сильно влияет на размер файла дает большую экономию места. Например если уставить  80%  файл в 3.5 Mb  сжимается до 1 мегабайта, при этом потери качества мизерное, разглядеть  практически не возможно.   Компрессия фото не затрагивает матрицу как было фото  с разрешением 8400 × 3600 так и останется.

Макс размер пиксели

Максимально допустимый размер в пикселях картинки.    Если длинна или ширина изображения превышает этот размер то картинка будет пропорционально пережата (ресайз) с уменьшением матрицы до заданного значения.  Алгоритм отслеживает не стандартные панорамные фото , если такое фото обнаружено то для него максимальный размер будет увеличен в 2 раза. Например мы задали  4096 пикс  обычные фото  будут сжиматься до этого размера по высоте или по ширине смотря что больше, а вот панорамное фото будет сжато по ширине до  8192   пикс .

Размер файлов для сжатия

Размер файла параметр задает для каких файлов будут работать процедуры сжатия по качеству и по размеру, два предыдущих пункта.  Например  зададим 512000 байт   это 500 Кбайт, так вот если фотография по размеру файла меньше чем 500 Кбайт  она не будут сжиматься ни по качеству ни по размеру матрицы.

Авто коррекция ориентации

Разворачивает картинки согласно заданной в exif тегах ориентации, и сбрасывает exif данные в 0.  Более подробно Ориентация фотографий 

Отслеживать похожие изображения

Для каждого изображения, не зависимо от того включена эта опция или нет будет создана битовая маска. По этой маске можно сравнивать все загруженные картинки и находить похожие. Степань похожести можно задать числом - количество не совпавших бит,   проще говоря чем больше это число тем больше  шансов найти похожие фотографии, для загружаемой картинки.  Подробнее о Поиске похожих фотографий

Рекомендованное значение 1.    Если установить значение в 0, проверка все равно будет работать, а найденные фото будут практически идентичны. Все похожие картинки загружается в БД buArc не будут,  они будут перемещается в специальную папку папкаАрхива\similars.  Позже можно отключить все проверки и принудительно загрузить эти фотки из папки см опцию Отключить все проверки

Чтобы отключить проверку нужно оставить  поле пустым.

Синхронизация БД 

Если включить эту опцию то  данные о категориях, метках, пользователях, а также комментарии будут сохранятся не только в базе данных buArc, но  и будут записываться непосредственно в файлы  в виде exif мета тегов.   В дальнейшем если вдруг накроется buArc с базой данных, можно будет частично восстановить данные из файлов архива.

Записываются данные сторонней программой exiftool.  Она поддерживает не все форматы вот список Supported File Types .   Храните фото в jpeg, а видео в MP4 и будут все ок.   

Действие по изменении даты оригинала для файла\файлов также  будут синхронизироваться  с файлами. Только в этом случае помимо утилиты exiftool ,  buArc  будет пытаться сделать прямую замену строки в файле на новую дату.   В частности такой метод позволяет менять дату оригинала для AVI видео файлов.


Загрузка файлов

Загрузка через браузер  ( upload browser )

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

Также этот метод можно использовать для загрузки файлов с другого компьютера, но это в том случае если buArc настроен на работу в локальной сети.

На странице выводятся данные о настройках,  сколько ресурсов выделено для работы скрипта : 

  • max_file_uploads максимально кол-во загружаемых одновременно файлов.
  •  memory_limit  - общий размер оперативной памяти для работы всего buArc
  • post_max_size -  максимально допустимый размер данных, отправляемых браузером в buArc 
  • upload_max_filesize  максимальный размер загружаемого файл  

Загрузка директории (directory)

Заходим выбираем диск,  далее выбираем папку откуда загружать и нажимаем Grab

buArc просканирует указанную директорию и все ее поддиректории создает полный список (очередь) всех файлов и приступит к загрузке.   Процесс это может занимать довольно много времени, вкладка браузера будет находится в режиме загрузки. Индикатор загрузки страницы будет постоянно крутится. Это нормально все так и должно быть - процесс идет.   

По мере обработки файлов информация пакетами будет выкидываться в браузер вы увидите весь процесс. 

Индикатор start position это число будет меняться по мере загрузки. Оно показывает номер только что обработанного файла в очереди, (запоминает позицию в очереди файлов). 

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

Импорт файлов из облака Google Photo

Просмотрите подготовленный комикс .  

 

 

  1. Заходим G clouds -> Auth in Server Api    переходим на сервер google для авторизации.
  2. Выбираем акаунт если надо выполняем вход в google переходим далее.
  3. Далее google будет вас пугать, потому что приложение мое не зарегистрировано и эксперты его не проверяли. Я понятия не имею где взять этих экспертов, так что продолжаем как показано на картинках.   По правилам больше 3-х раз пугать нельзя - поэтому будьте настойчивы. На последнем предупреждении не забудьте поставить галочку разрешить доступ к Google Photo.  Далее нам должны выдать временный код доступа, копируем его, возвращаемся на страницу архивариуса, вводим код в поле жмем apply code! Если все хорошо, появится ваши данные почта и имя.  Ниже поле с датой это момент времени с которого мы начнем сканировать и загружать фоты.
  4. Для параноиков - в Google Photo API  нет опции удалить файл, самое страшное, что можно сделать это переместить файлы в альбом.  
  5. Алгоритм импорта следующий -   двигаемся по времени от 2000 года к текущему моменту, по ходу вытягиваем все фотографии и видео.  В процессе загрузки дата будет меняться и  запоминаться.  Поэтому можно спокойно прервать процесс, зайти завтра и продолжить с указанной даты.
  6. Повторных загрузок можно не опасаться buArc отслеживает дубликаты по уникальному идентификатору id облака.
  7. Для всех объектов, загруженных из облака,  помимо основного устройства (модель телефона)  будет добавлено устройство равное почте пользователя. 
  8. Загрузка видео - все видео загруженное из облака будет сильно порезано и сжато. И не  важно, что в настройках Google Photo   вы поставите  хранить файлы в исходном качестве, видео режется безжалостно, похоже эта опция только для фото работает.  
  9. Предупреждение если вы хотите скачать архив с помощью сервиса импорта данных самого Google Photo не спешите удалять файлы на облаке, сначала распакуйте полученный архив и посмотрите, что вам пришло, ну и сравните размер того, что вы получилось в итоге. ;-).   Может прийти полупустой архив, будете аккуратнее.

 

Алгоритм загрузки 

Независимо от того каким способом загружаются файлы все они проходят через определённый список проверок и действий:

  • проверка размера файла, должен быть не больше и не меньше заданных в настройках параметров
  • получаем хеш файла, по нему ищем в базе данных buArc совпадение если таковое найдено значит такой файл у нас уже есть, пишем сообщение и пропускаем загрузку. (хеш файла -уникальная цифровая подпись для файла,  можно поменять имя файла подпись не изменится , однако достаточно изменить хотя бы один бит в теле файла и мы получим другую подпись)
  • загружаем файл во временную директорию если это необходимо, директория находится c:\папка архива\tmpFiles
  • выполняем преобразования над файлом если это требуется, поворот, сжатие, ресайз
  • запускаем утилиту exiftool получаем полный список всех возможных данных о файле, из этих данных выбираем время оригинала, тип файла , разрешение, данные об устройстве device, гео координаты, и др.
  • проверяем еще одну цифровую подпись oHash, эта подпись создается на связке оригинальное имя файла + дата создания оригинала. То есть, если у двух файлов совпадет оригинальное имя и дата создания фото  - совпадет и oHash. Считаем что это дубликат и пропускаем его.
  • создаем битовую маску для картинок , ищем в базе buArc похожие фотографии.  Это отдельная большая тема подробнее см Поиск похожих фотографий
  • проверяем и есть в файле exif данные о метках, категориях , юзерах если есть то восстанавливаем связи (это процесс восстановления, чтобы он работал ранее надо включить синхронизацию)
  •  все проверки пройдены, создаем запись в базе данных buArc, перемещаем файл из временной папки по месту постоянного проживания. Если перемещение файла не удалось делаем отмену , удаляем запись в базе данных.     

Редактор

Для группировки файлов в buArc поддерживается 3 типа классификации : категории - category, метки - tag, юзеры - user ( в смысле люди) . 

Создание меток , категорий, юзеров

Создание рассмотрим на примере категорий. Заходим на страницу редактора в окошке New atom set type вводим тип нового атома category  жмем new.

Теперь заполняем два поля: a_name - тут можно писать только латиницей буквы, цифры и знак подчеркивания _ , поле используется в создании url ;    a_title -  здесь пишем любой текст не более 128 знаков,  этот название будет отображается на сайте. Нажимаем внизу  save atom.

Чтобы создать иерархическую структуру из категорий (дерево) нужно задать связи между категориями родитель - потомок. Переходим по ссылке add links. В выпадающем списке выбираем category , жмем aplly, чтобы отсеять только атомы категорий.  Выбираем нужного нам родителя, ставим галочку и жмем add parents

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

Создание записи post или page 

В buArc вы можете создавать текстовые посты или страницы.  Чтобы создать пост выполняем действия:  редактор -> New atom set type = post -> new -> задам a_name и a_title  нажимаем сохранить пост создан но пока без текста.  

a_note - в этом поле можно написать о чем пост короткий текст (аннотация)

Теперь, чтобы создать основной текст, идем вниз добавляем мета поле  под add meta fields пишем  content  и  жмем add metas.

У вас должно появится большое текстовое поле с визуальным редактором.  Пишем текст и почаще сохраняемся. 

Действия над файлами

Панель действий с файлами находится слева в сайдбаре, не прокручивается,  и всегда доступна для использования. 

Выберите несколько файлов, выберите из списка необходимое действие нажмите кнопку do с молоточком. Флажок select all позволяет выбрать сразу все файла, а при повторном нажатии снимает выбор со всех файлов. Рядом с ним отображается кол-во выбранных файлов.

Повороты

Это действие работает только для изображений.  Доступны поворот по часовой +90,  против часовой -90, зеркальный разворот на 180 градусов.

Удаление и корзина

Чтобы удалить файлы, сначала их надо отправить в корзину,  отмечаем нужные файлы выбираем trash жмем do.  Файлы, которые находятся в корзине ,нигде кроме корзины больше не отображается,  не спешите их удалить.

Переходим в корзину   фильтр->корзина. Теперь когда вы находитесь в корзине появится в списке действий появится пункт delete (only trash) выбираем и жмем do.

Но и это еще не все, записи в БД будут удалены, а все удаленные файлы будут перемещены в папку  папкаАрхива\delete\   . Вот там то уже можно прибить их окончательно.  

Категории, метки, пользователи  - добавить, удалить 

Выбираем add link добавить связи. Появится 3 дополнительных выпадающих списка категории, метки и юзеры.  Выбираем что мы хотим присвоить атомам  жмем do,  за один раз можно присвоить 1 категорию, 1 метку и одного пользователя. 

unlinks - разорвать связи, выбираем какие именно связи нам надо разорвать. 

unlinks All -  это действие удалит все связи у выбранных файлов  : категории, метки , пользователей,  (девайсы останутся )

Изменение даты оригинала

В списке действий выбираем set date, указываем дату в полном формате год4знака-месяц2-день2   гггг-мм-дд    выбираем файл\файлы жмём do.  Изменяется дата не создания файла, а именно дата оригинала когда было сделано фото.  Дата записывается в exif данных с помощью утилиты exiftool.  Время файла не меняется.

Комментарии 

Выбираем действие comment, появится текстовое поле - пишем свой текст, жмем do.  Комментировать за раз можно один или несколько файлов.  Длинна текста кажется ограничена 255 знаков.   И еще момент важный если в начале комментария поставить знак + то этот текст будет добавлен к комментарию который уже был до этого у файла.   

Фильтр

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

В самом фильтре можно задавать 3 параметра Даты, Числовые , Строковые поля .   Эти 3 параметра можно комбинировать.   

Про даты :

  • дата оригинала это дата когда было сделано фото. Как правило эта дата зашивается в exif данные файла самим устройством (фотапаратом) в момент создания фото. 
  • дата добавления в БД   - это когда вы добавили фото в архив. То есть сфоткали в 2019, а добавили в Буга сегодня вот и будет стоять  сегодняшняя дата. 
  • дата обновления это когда вы изменили запись в buArc  допустим сфоткали в 2019,   добавили в buarc в 2020 , а тут увидели, что неправильная ориентация фото решили повернуть его значит значит дата обновления станет сегодняшней. Долго можно еще рассказывать   перейдем к примерам:

Выбрать все за 2018 год - 

За 2018 год и еще хотим только фото широкого формата то есть по ширине 4000 px  разрешение :

Выбрать панорамные фото (это те у которых ширина более 4500 пикселей)  , за 2019 . Так как поле в базе данных a_name всегда содержит год то можно искать по этому полю воспользуемся оператором LIKE   ставим 2019% .   Символ % специальный символ оператора LIKE означает любое количество символов.

 

Выбрать все изображение png формата.

Возможны другие комбинации, на первое время хватит.

 

Сортировка

Все списки файлов можно сортировать по различным полям. Параметры сортировки доступны в правом верхнем углу. Выбираем поле по коорому нужно сортировать и выбираем направление ASC - по возрастанию, DESC - по убыванию. 

При сортировке по дате оригинала DESC  может возникнуть непонятный момент, когда файлы с более поздним названием идут первыми. Объясняю момент:  при сканировании файлов exiftool не всегда удается получить данные о создании фотографии в этом случае поле a_data_original  остается пустым, а вот имя файла генерируется на основе текущей даты.   Вот мы и получаем файлы с пустым полем a_data_original  идут первыми, хотя имя файла у них записано на более позднюю дату. Такая коллизия.

Работа в локальной сети

Сервер может быть перенастроен для запуска локальной сети, то есть с любого комьютера и даже телефона, подключённого к вашему роутеру, можно будет зайти  по адресу http://buarc используя любой браузер. 

Заходим в папку D:\OpenServer\domains\     и переименовываем папку localhost  на например localhost1,      можно ваш вариант (удалять ее не надо!)

Запускаем сервер правой кнопкой жмем на значок сервера в трее выбираем настройки, переходим на вкладку Сервер , меняем IP-адрес сервера с 127.0.0.1   на Ваш адрес 192.168.xx.xx    он будет отличаться от того что на картинке.    Жмём сохранить сервер делает рестарт. 

                                          

Сервер запустился значит все ок, пробуем открыть buarc на этом компьютере. Теперь нам надо объяснить другим компьютерам сети, что адрес http://buarc  открывается на новом IP, этот тот адрес, что вы указали в настройках сервера.  Тут есть 2 варианта:           

1) Прописываем DNS в настройках роутера

Я покажу на примере роутера D-Link  на  других роутерах и админка и IP адреса будут отличаться.   Итак, заходим в админку роутера в браузере забиваем http://192.168.0.1  , вводим логин и пароль ,  далее идем Дополнительно->DNS - Добавить новый DNS  прописываем  IP =192.168.xx.xx ,  Называние = buarc .  Жмем применить. 

Если все нормально то buarc станет доступным сразу для всех устройств подключённых к сети.  На любом компе или телефоне   берем браузер и ручками в адресной строке обязательно с http://   забиваем адрес http://buarc .    Если без http://  браузер подумает, что это не домен а просто слово такое откроет поиск по нему.  У меня лично все получилось зашел даже с телефона :) 

2) Прописываем домен в HOSTS файл на каждом компьютере 

Заходим в директорию где у вас установлен Windows Файл hosts находится обычно находится в C:\Windows\System32\drivers\etc\hosts  открываем его в блокноте и прописываем внизу строчку 192.168.xx.xx    buarc     - сохраняем файл.   Теперь браузер и опять таки ручками с http://   забиваем http://buarc   должен открыться наш сайт.

 

Отключится от локальной сети 

Тут всего 2 шага

  • переименовываем обратно localhost1 возвращаем как было в localhost
  • в настройках сервера меняем IP - alhtc сервера на 127.0.0.1, рестарт сервера

DNS переписывать не надо, они там никому не мешают.