====== Сховище зображень ======
Призначено, для зберігання ваших зображень, як не дивно.
====== Ввімкнення ======
Просто увімкніть. Усюди, де це підтримується, воно почне працювати.
PHOTOSTORAGE_ENABLED=1
====== Винесення даних кудись подалі ======
За замовчуванням, дані зберігаються в **content/documents/photostorage**. Ті, хто активно використовують зображення для ведення своєї господарської діяльності, можуть зіткнутися з проблемою "розпухання" директорії білінгу, що як мінімум нездорово, з точки зору швидкого бекапу даних. У таких випадках, починаючи з релізу 1.2.5 з'явилася можливість тримати ці дані практично де завгодно вашій душі. Від "просто іншої директорії" до "на зовнішньому хості і взагалі хочу свою хмару".
===== Конфігурація зовнішнього хоста =====
Припустимо, ми хочемо витягнути, всі наші зображення, на якийсь зовнішній сервер, нехай він буде віртуалкою. Нехай його IP буде 192.168.0.5, наприклад.\\
Отож по пунктах:
* Встановлюємо чисту FreeBSD, чи що ви там хочете або чим вмієте користуватися. Неважливо.
* Конфігуруємо на ній мережу
ifconfig_vtnet0="inet 192.168.0.5 netmask 255.255.255.0"
* Створюємо директорію, в якій ми зберігатимемо зображення
# mkdir /share/
# mkdir /share/photostorage
# chmod -R 777 /share
* Експортуємо директорію як NFS, хоча можете використовувати будь-що, хоч CIFS хоч sshfs на ваш смак.
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_enable="YES"
mountd_flags="-r"
/share -alldirs -maproot=root тут_IP_вашого_білінгу
* Перезавантажуємо сервер, щоб переконатися, що все нормально стартує
===== Монтування на білінговий сервер =====
Припустимо, ми збираємось зберігати зображення локально на білінговому сервері, в директорії **/mnt/photostorage**.
* Створюємо цю директорію:
# mkdir /mnt/photostorage
* Монтуємо в неї нашу шару 192.168.0.5
# mount 192.168.0.5:/share/photostorage /mnt/photostorage
Для забезпечення автоматичного монтування директорії, зверніться до документації з вашої ОС.
Можливо, вам не хочеться взагалі піднімати NFS, CIFS або ще щось і вам здається, що досить ssh. Да без проблем:
# pkg install fusefs-sshfs
# kldload fuse
# sysctl vfs.usermount=1
# devfs ruleset 10
# devfs rule add path 'fuse*' mode 666
# sshfs -o allow_other somelogin@192.168.0.5:/share/photostorage /mnt/photostorage
Не забуваємо перенести в нове місце наявні зображення з **content/documents/photostorage/** в наше нове місце зберігання!
# mv /usr/local/www/apache24/data/billing/content/documents/photostorage/* /mnt/photostorage/
===== Конфігурація білінгу =====
Можемо взагалі нічого не змінювати, та вказати просто нову директорію сховища та включити режим проксування самим модулем "сховище зображень" для віддачі зображень зі змонтованою ФС.
PHOTOSTORAGE_DIRECTORY="/mnt/photostorage/"
PHOTOSTORAGE_URL_PREFIX=""
PHOTOSTORAGE_PROXY_MODE=1
Можемо знизити навантаження на бекенд, наприклад, тупо сімлінкнувши нове місце зберігання кудись у місце доступне по HTTP:
# ln -fs /mnt/photostorage /usr/local/www/apache24/data/photosplace
і вказавши це якось так у конфізі
PHOTOSTORAGE_DIRECTORY="/mnt/photostorage/"
PHOTOSTORAGE_URL_PREFIX="http://ваш_біллінг/photosplace/"
PHOTOSTORAGE_PROXY_MODE=0
Можемо показувати зображення прямо з нашого зовнішнього хоста, піднявши там web-сервер, що дивиться у /share/photostorage
PHOTOSTORAGE_DIRECTORY="/mnt/photostorage/"
PHOTOSTORAGE_URL_PREFIX="http://192.168.0.5/"
PHOTOSTORAGE_PROXY_MODE=0
Ну, загалом ви зрозуміли. Все обмежується лише вашою фантазією.
====== Пост-процесинг ======
Також, в Ubilling 1.4.3 з'явилась можливість автоматичної обробки всіх завантажуваних зображень.
; Чи ввімкнено після-обробку зображень при завантаженні в сховище зображень? Зображення просто відкриватимуться,
; читатимуться та зберігатимуться по-новому після завантаження. Вже саме по собі, це може суттєво зменшувати їх розмір.
PHOTOSTORAGE_POSTPROCESSING=0
; Додавати на зображення водяний знак з content/documents/watermark.png? Очевидно, що підтримується прозорість та даний файл переживає оновлення.
PHOTOSTORAGE_WATERMARK=1
; Змінювати рівень стиснення для jpeg/png з метою мініфікації та підвищення їх притомності? Теж радикально зменшує розмір файлів, що будуть збережені.
PHOTOSTORAGE_RECOMPRESS=1
; Чи ввімкнено автоматичну зміну розмірів великих зображень? Власне, наразі, зображення з будь-яким з вимірів більшим
; за 4k px буде продаунскейлено до 0.5х а зображення з будь-яким з вимірів більшим за 2к px буде продаунскейлено до 0.8х.
PHOTOSTORAGE_AUTORESIZE=1
; Вдруковувати в зображення відлагоджувальну інформацію, таку як дата, оригінальні розміри, оригінальний об'єм файлу, тощо.
PHOTOSTORAGE_DRAWIMGINFO=1