• Главная
  • Карта сайта
Не найдено

5. Віртуальна файлова система Apache Commons VFS

  1. 5.1. Підтримувані файлові системи
  2. 5.1.1. локальні файли
  3. 5.1.2. Архіви Zip, Jar і Tar
  4. 5.1.3. Архіви gzip і bzip2
  5. 5.1.4. HTTP і HTTPS
  6. 5.1.5. FTP і SFTP
  7. 5.1.6. WebDAV
  8. 5.1.7. CIFS
  9. 5.1.8. Тимчасові файли
  10. 5.1.9. res
  11. 5.1.10. ram
  12. 5.2. Основи роботи з VFS
  13. 5.3. аутентифікація користувача

Для спрощення роботи і гнучкою можливості розширення функціональних можливостей файлового менеджера, чи не будемо обмежуватися прямим доступом до файлів операційної системи Для спрощення роботи і гнучкою можливості розширення функціональних можливостей файлового менеджера, чи не будемо обмежуватися прямим доступом до файлів операційної системи. Щоб уніфікувати доступ до файлових ресурсів скористаємося готовими бібліотеками вільного проекту віртуальної файлової системи Apache Commons Virtual File System (VFS). Метою даного проекту є створення єдиного інтерфейсу (application programming interface (API)) для доступу до файлових ресурсів незалежно будь то файли на локальних дисках, на ftp серверах або вміст архівів, наприклад ZIP.

5.1. Підтримувані файлові системи

Поточна реалізація Apache Commons VFS включає підтримку декількох типів файлових систем, і дозволяє створювати власні реалізації з можливістю автоматичного підключення. Всі ресурси ідентифікуються за допомогою однакового ідентифікатора ресурсів (Uniform Resource Identifier (URI)). URI дозволяють описувати, як абсолютні, (приклад: http://www.berdaflex.com), так і відносні (приклад: ../images/logo.png) ресурси. Тип ресурсу визначається на основі вмісту URI.

Малюнок 4.17. Спрощена UML діаграма класів підтримуваних файлових систем


5.1.1. локальні файли

Дозволяє здійснювати доступ до локальних файлів файлової системи поточної операційної системи (ОС).

формат URI

[file: //] абсолютний шлях

Де "абсолютний шлях" являє собою допустимий шлях до файлів поточної ОС відповідно до універсального угодою про іменування ресурсів (Universal Naming Convention (UNC)).

приклади

file: /// home / someuser / somedir file: // C: / Documents and Settings c: / program files

5.1.2. Архіви Zip, Jar і Tar

Дозволяє здійснювати (тільки читання) доступ до вмісту архівів даних типів.

формат URI

Тіп_архіва:

// arch-file-uri [! абсолютний шлях]

Де "Тіп_архіва" може бути (zip, jar, tar, tgz, tbz2), а arch-file-uri вказує на файли підтримуваних типів.

При необхідності використовувати символ "!" Потрібно вказувати код% 21. Архіви tgz і tbz2 можуть прописуватися як tar: gz і tar: bz2 відповідно.

приклади

jar: ../ lib / classes.jar! /META-INF/manifest.mf zip: http: //somehost/downloads/somefile.zip tgz: file: //anyhost/dir/mytar.tgz! / somepath / somefile

5.1.3. Архіви gzip і bzip2

Дозволяє здійснювати (тільки читання) доступ до вмісту архівів даних типів.

формат URI

Тіп_архіва:

// compressed-file-uri

Де "Тіп_архіва" може бути (gz, bz2), а "compressed-file-uri" вказує на файли підтримуваних типів.

приклад

gz: /my/gz/file.gz

5.1.4. HTTP і HTTPS

Дозволяє здійснювати доступ до файлів HTTP сервера, за звичайним або захищеному протоколу.

формат URI

http: // [username [: password] @] hostname [: port] [absolute-path] https: // [username [: password] @] hostname [: port] [absolute-path]

приклади

http://www.berdaflex.com/ru/default.html https://sourceforge.net/projects/filearranger

5.1.5. FTP і SFTP

Дозволяє здійснювати доступ до файлів FTP сервера, за звичайним або захищеному протоколу (SSH або SCP).

формат URI

ftp: // [username [: password] @] hostname [: port] [absolute-path] sftp: // [username [: password] @] hostname [: port] [absolute-path]

приклади

ftp: // berdachuk: 123 @ berdaflex.com/downloads/filearranger.zip sftp: // berdachuk: [email protected]/downloads/filearranger.zip

5.1.6. WebDAV

Дозволяє здійснювати доступ до файлів WebDAV сервера.

формат URI

webdav: // [username [: password] @] hostname [: port] [absolute-path]

приклад

webdav: // somehost: 8080 / dist

5.1.7. CIFS

Дозволяє здійснювати доступ до файлів CIFS сервера, наприклад Samba сервер, або Windows share.

формат URI

smb: // [username [: password] @] hostname [: port] [absolute-path]

приклад

smb: // somehost / home

5.1.8. Тимчасові файли

Дозволяє здійснювати доступ до тимчасових файлів ОС, які видаляються після роботи з Commons VFS.

формат URI

tmp: // [absolute-path]

приклад

tmp: //dir/somefile.txt

5.1.9. res

Дозволяє здійснювати доступ до віртуального поданням файлів ресурсів у вигляді файлової системи.

формат URI

res: // [path]

приклад

res: path / in / classpath / image.png може замінити наприклад: jar: file: //my/path/to/images.jar! /path/in/classpath/image.png

5.1.10. ram

Дозволяє здійснювати доступ до віртуальної файлової системи в оперативній пам'яті.

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

формат URI

ram: // [path]

приклад

ram: ///any/path/to/file.txt

5.2. Основи роботи з VFS

Найпростіше отримати доступ до менеджера VFS через статичний метод VFS.getManager (), а за допомогою VFS менеджера можна отримати доступ безпосередньо до файлових об'єктів, наприклад:

// Друк вмісту каталогу користувача

FileSystemManager fsManager = VFS.getManager (); FileObject file = fsManager.resolveFile (System.getProperty ( "user.dir")); FileObject [] children = jarFile.getChildren (); for (int i = 0; i <children.length; i ++) {System.out.print (children [i] .getName (). getBaseName ()); FileContent content = children [i] .getContent (); System.out.print ( "Size:" + content.getSize () + "bytes."); DateFormat dateFormat = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM); String lastMod = dateFormat.format (new Date (content.getLastModifiedTime ())); System.out.println ( "Last modified:" + lastMod); }

5.3. аутентифікація користувача

При роботі з деякими ресурсами (наприклад, ftp) потрібно аутентифікація користувача.

Використовуючи UserAutentificator можна приховати передається в адресі пароль, наприклад:

StaticUserAuthenticator auth = new StaticUserAuthenticator ( "berdachuk", "password", null); FileSystemOptions opts = new FileSystemOptions (); DefaultFileSystemConfigBuilder.getInstance (). SetUserAuthenticator (opts, auth); FileObject fo = VFS.getManager (). ResolveFile ( "ftp://filearranger.com/downloads", opts);

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью