Исходя из моего понимания, я думаю, что вы хотите использовать хранилище Azure так же, как локальную файловую систему, не используя Azure Storage SDK и не изменяя код, просто используя API файловой системы POSIX в Java.
Как я знаю, по моему опыту, есть два способа удовлетворить ваши потребности.
- Чтобы создать общий файловый ресурс Azure в виде NFS и подключить его с Windows , Linux и MacOS .
- Если работает в Linux, вы также можете использовать хранилище BLOB-объектов Azure, чтобы смонтировать контейнер в качестве каталога в вашей файловой системе. На Github есть официальный проект Azure azure-storage-fuse , который реализует адаптер виртуальной файловой системы для хранилища BLOB-объектов Azure через модуль ядра Linux FUSE, как показано ниже. Он не полностью совместим с POSIX, но достаточно для большинства сценариев.
blobfuse
О
blobfuse - это проект с открытым исходным кодом, разработанный для предоставления виртуальной файловой системы, поддерживаемой хранилищем BLOB-объектов Azure. Он использует библиотеку с открытым исходным кодом libfuse для связи с модулем ядра Linux FUSE и реализует операции файловой системы с помощью API-интерфейсов REST BLOB-объектов хранилища Azure.
Blobfuse стабилен и поддерживается хранилищем Azure, если он используется в пределах, указанных здесь. Пожалуйста, отправьте вопрос здесь для любых вопросов / запросов / вопросов.
Особенности
- Монтирование контейнера хранения Blob в Linux
- Основные операции с файловой системой, такие как mkdir, opendir, readdir, rmdir, открытие, чтение, создание, запись, закрытие, удаление ссылок, усечение, статистика, переименование
- Локальный кэш для улучшения времени последующего доступа
- Функции параллельной загрузки и выгрузки для быстрого доступа к большим каплям
- Позволяет нескольким узлам монтировать один и тот же контейнер для сценариев только для чтения.
Два вышеупомянутых способа создадут точку монтирования в локальной файловой системе для выполнения основных файловых операций, как в локальном каталоге.