Центр файлов¶
В данном разделе описано администрирование и обслуживание Центра файлов.
Миграция в файловое хранилище¶
В подсистеме настроек для Центра файлов можно указать хранилище файлов, где будут размещаться новые файлы. Уже загруженные файлы продолжают располагаться на том хранилище, на котором они были.
-
Если хранилище для Центра файлов не указано (по умолчанию), то для новых файлов используется хранилище по умолчанию, которое выбрано на момент добавления файла (без учёта дополнительных фильтров по расширениям файлов).
-
Если хранилище для Центра файлов указано, то новые файлы будут добавляться в это хранилище.
Далее рассказывается, каким образом возможно обеспечить расположение всех файлов Центра файлов на единственном хранилище. Это может быть актуально, если Центр файлов уже использовали, после чего указали новое хранилище в подсистеме настроек, которое может располагаться на отдельном диске. Требуется обеспечить, чтобы все уже существующие файлы (неважно, в каких папках Центра файлов и для каких ролей) были бы перенесены на актуальное хранилище.
-
Выполните скрипт
Fixes/SelectCardFileSources.**.sql, чтобы определить, на каких файловых хранилищах расположены файлы Центра файлов. Версию скрипта.ms.sqlили.pg.sqlвыбирайте в соответствии с используемой СУБД (MS SQL Server или PostgreSQL соответственно). В качестве параметра@CardIDукажите идентификатор карточки Центра файлов../tadmin Select "Fixes/SelectCardFileSources.pg.sql" "-p:CardID=EFE81B77-E4B0-4086-ADEE-840D40799EDB" -q
Относительный или абсолютный путь до папки
Fixesиз архива сборки укажите аргументом послеSelect. Строка подключения к БД указана в файлеapp-db.jsonв папке утилитыtadmin.В результате будут возвращены цифровые идентификаторы хранилищ файлов. Скрипт ничего не вернёт только в том случае, если в Центре файлов нет ни одного файла. Обыкновенный вывод выглядит следующим образом:
2 3 4
Такой результат означает, что в Центре файлов содержимое некоторых файлов размещено на хранилище с идентификатором
2, других -3, и ещё других -4.Пусть актуальное хранилище файлов, указанное сейчас в настройках, имеет идентификатор
4. Таким образом, чтобы разместить все файлы Центра файлов на хранилище4, нужно перенести их с хранилища2на хранилище4, а затем с хранилища3на хранилище4. -
Переместите все файлы с помощью команды tadmin MigrateFiles. Укажите исходное хранилище (в примере
2, и затем отдельной командой -3), целевое хранилище (в примере4) и идентификатор карточки Центра файлов../tadmin MigrateFiles -from:2 -to:4 -id:EFE81B77-E4B0-4086-ADEE-840D40799EDB
Команда выполнит перенос всех файлов, принадлежащих карточке Центра файлов с указанным идентификатором
-id, из хранилища с идентификатором-fromв хранилище с идентификатором-to. В примере команду потребуется повторить также для хранилища-from:3(с другими неизменными параметрами).Консольная команда выполняет поиск файлов для переноса в соответствии с данными в БД (строка подключения к БД указана в файле
app-db.jsonв папке утилитыtadmin). Непосредственно копирование файлов выполняется в соответствии с путями, указанными в настройках файловых хранилищ. Эти пути должны быть доступны с той терминальной сессии, в рамках которой вызывается эта команда. В связи с этим, рассмотрите её вызов на сервере приложений, в котором также расположен сервисwebилиchronos(или доступность папок необходимо обеспечить аналогичным образом, как это сделано для сервера приложений).
После того, как все файлы будут перенесены, упростится администрирование инфраструктуры Центра файлов, т.к. все существующие и все новые файлы записываются в одно хранилище. Если когда-то хранилище будет решено изменить, то по этому же алгоритму возможен перенос в новое хранилище.