Зміст

Системне сховище файлів

Не повірите - призначено для зберігання ваших файлів.

Ввімкнення

Просто увімкніть. Усюди, де це підтримується, воно почне працювати.

config/alter.ini
FILESTORAGE_ENABLED=1

Винесення даних кудись подалі

За замовчуванням, дані зберігаються в content/documents/filestorage. Ті, хто активно використовують цей функціонал, для ведення своєї господарської діяльності, можуть зіткнутися з проблемою “розпухання” директорії білінгу, що як мінімум нездорово, з точки зору швидкого бекапу даних. У таких випадках, починаючи з релізу 1.6.2 з'явилася можливість тримати ці дані практично де завгодно вашій душі. Від “просто іншої директорії” до “на зовнішньому хості і взагалі хочу свою хмару”.

Конфігурація зовнішнього хоста

Припустимо, ми хочемо витягнути, всі наші файли сховища, на якийсь зовнішній сервер, нехай він буде віртуалкою. Нехай його IP буде 192.168.0.5, наприклад.

Отож по пунктах:

/etc/rc.conf
ifconfig_vtnet0="inet 192.168.0.5 netmask 255.255.255.0"
# mkdir /share/
# mkdir /share/filestorage
# chmod -R 777 /share
/etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_enable="YES"
mountd_flags="-r"
/etc/exports
/share -alldirs -maproot=root  тут_IP_вашого_білінгу

Монтування на білінговий сервер

Припустимо, ми збираємось зберігати файли локально на білінговому сервері, в змонтованій директорії /mnt/filestorage.

# mkdir /mnt/filestorage
# mount 192.168.0.5:/share/filestorage /mnt/filestorage

Для забезпечення автоматичного монтування директорії, зверніться до документації з вашої ОС.

Можливо, вам не хочеться взагалі піднімати 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/filestorage /mnt/filestorage

Не забуваємо перенести в нове місце наявні файли сховища з content/documents/filestorage/ в наше нове місце зберігання!

# mv /usr/local/www/apache24/data/billing/content/documents/filestorage/* /mnt/filestorage/

Конфігурація білінгу

Потрібно просто вказати нову директорію для файлів

config/alter.ini
FILESTORAGE_DIRECTORY="/mnt/filestorage/"

Про розміри

За максимальний розмір завантажуваних файлів відповідають рівно дві опції php.ini:

php.ini
;Максимальний розмір всієї форми
post_max_size = 64M
;Максимальний розмір одного файлу, що завантажується
upload_max_filesize = 64M