Глава XII - Виртуальная файловая система



 1 - Как это работает


Виртуальная файловая система (файловая система далее обозначается ФС) позволяет вам устанавливать соответствие между виртуальными и реальными каталогами.
Это позволяет вам предоставлять пользователям общий доступ к вашим файлам и папкам при помощи учётных записей

432x353 (6834 bytes)

 2 - Доступные ресурсы


Локальная ФС : c:\.. (ФС windows)
Объединить ФС : merge:// (объединение каталогов)
ФС памяти : Ramdisk:// (виртуальный диск)
Удалённые ресурсы по FTP : ftp://login:password@ip/ (ресурсы FTP сервера)
Пустой : Empty:// (создаёт пустой виртуальный каталог, полезно для монтирования различных каталогов в корневой каталог)

Вы также можете использовать UNC (\\computer\), чтобы подмонтировать каталог, в учётной записи пользователя.
(Примечание : Учётная запись локальной ФС NT (учётная запись службы по умолчанию) не имеет доступа к сетвеым или закартированным дискам, поэтому вам следует создать нового пользователя, у которого будет доступ к сети в свойствах служб.)

Замечание о "merge://" :
- можно объединять любое количество каталогов.
- если путь содержит запятую, закомментируйте её : "c:\ftproot\files, datas\"
- повторяющиеся файлы и подкаталоги будут отражены в списке лишь однажды.
- повторяющиеся подкаталоги также будут объединены.
- права доступа применяются ко всем объединённым каталогам.
- закачка/создание каталогов всегда будет производиться в первый каталог/первом каталоге из списка объединения.
- при удалении сервер будет просматривать каждый каталог, пока не найдёт файлы; если есть повторные файлы, файл будет удалён лишь однажды, это означает, что он может по-прежнему содержаться в списке (в этом случае в список он попадает из другого каталога).

 3 - Права доступа


Уровень файла :
- Загрузка : пользователь может читать файлы с сервера.
- Закачка : пользователь может записывать файлы на сервер.
- Удаление : пользователь может удалять файлы с сервера.
- Дополнение : пользователь может возобновлять закачку файла.

Уровень каталога :
- Список файлов: пользователь может просматривать список файлов.
- Список каталогов : пользователь может просматривать список каталогов.
- Создать : пользователь может создавать каталоги на сервере.
- Удалить : пользователь может удалять каталоги с сервера.
- Подкаталоги : пользователь может перейти в подкаталог текущего каталога.
- Скрыть : пользователь не увидит каталога.
- Безопасный : для входа в каталог пользователю придётся установить шифрованное (ssl) соединение.
- Запретить : пользователю запрещён доступ к данному каталогу.

- Все : установить все флажки.

Примеры

1) Вы хотите создать анонимную учётную запись на сервере.

В правах доступа вы указываете :

Виртуальный путь : /
Реальный путь : c:\ftproot\anonymous\
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги.

Более продвинутое решение :

Виртуальный путь : /
Реальный путь : empty://
Права доступа : Список файлов, Список каталогов, Подкаталоги (empty:// содержит только другие соответствия, поэтому запись запрещена)

И ещё одно :

Виртуальный путь : /public
Реальный путь : c:\ftproot\anonymous\
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги.

2) как предоставить всем пользователям определённый каталог для закачки и общие права доступа для загрузки.

a) Создать корневой каталог

Виртуальный путь : /
Реальный путь : empty://
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги

b) Задать общий каталог для загрузки

Виртуальный путь : /download
Реальный путь : c:\ftp\download
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги

c) Задать определённый каталог для закачек

Виртуальный путь : /upload
Реальный путь : c:\ftp\upload\$USR_ACCOUNT\
Права доступа : Загрузка, Закачка, Удаление, Список файлов, Список каталогов, Создать, Удалить, Подкаталоги
(не забудьте создать каталог c:\ftp\upload\$USR_ACCOUNT\, во время работы $USR_ACCOUNT заменяется на имя учётной записи).

d) (опционально) Сделать каталог закачки читаемым для других.

Виртуальный путь : /download/others
Реальный путь : c:\ftp\upload\
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги

3) Объединение нескольких каталогов в один (полезно, когда кончается место на диске)

Виртуальный путь : /
Реальный путь : merge://"c:\images\buildings\","d:\images\houses\","e:\images\flowers\"
Права доступа : Загрузка, Список файлов, Список каталогов, Подкаталоги

 4 - Дополнительно


Теги

При задании прав доступа вы также можете использовать теги (см. : Теги), чтобы динамически смонтировать каталог в зависимости от имени учётной записи пользователя, например (теги могут использоваться как в виртуальных, так и в реальных каталогах).

Вы можете создать : "c:\ftp\$DOM_NAME\$USR_ACCOUNT\", смонтированный в "/" с соответствующими правами доступа.
При вашем входе сервер будет искать ваш корневой каталог в c:\ftp\ftp.gene6.com\anonymous\ (если вы подключаетесь анонимно к домену "ftp.gene6.com")

Возможны варианты, например : "c:\ftp\$USR_GROUP\" , монтируемый в "/$USR_GROUP", чтобы предоставить общий доступ к файлам членам группы.

Специальные соответствия

Перемещение файлов в ftp-каталоге может привести к неработоспособности старых прямых ссылок, пользователи не смогут загружать файлы, пока ссылки не будут обновлены.
Чтобы решить эту проблему, вы можете создать соответствия файлов (примерно так же, как и перенаправление в http, но прозрачно).

Рассмотрим пример :

- вы распространяете установочный файл, в имени которого содержится номер версии "setup_v1.0.0.exe", расположенный в "c:\ftproot\www.yoursite.com\files\"
- выпущена новая версия, тепрь имя файла "setup_v2.0.0.exe", все сайты, ссылающиеся на ваши файлы, будут вынуждены обновить свои ссылки (это может занять некоторое время ...)

Решение состоит в том, чтобы создать новое правило доступа :

Виртуальный путь : /files/setup_v1.0.0.exe
Реальный путь : c:\ftproot\www.yoursite.com\files\setup_v2.0.0.exe
Права доступа : такие же, как и в исходном каталоге.

Так, когда пользователь запросит "setup_v1.0.0.exe", то, поскольку файл больше не существует, пользователю передаётся содержимое "setup_v2.0.0.exe"
(ограничение : файл по-прежнему называется "setup_v1.0.0.exe" у пользователя, здесь отличие от http, где вы можете сделать перенаправление на новое имя).

Это также будет работать при перемещении файлов в другой каталог :

Виртуальный путь : /old_location/setup.exe
Реальный путь : c:\ftproot\www.yoursite.com\new_location\setup.exe
Права доступа : такие же, как и в исходном каталоге.

Файл по-прежнему будет доступен и будет присутствовать в виртуальном списке в /old_location/ , но физически он будет находиться только в \new_location\