首页 > 解决方案 > 如何使用 java 文件编写器将内容存储到 azure 文件系统

问题描述

目前,我有使用 java 中的文件输入流和输出流从本地文件系统存储和检索数据的代码。我已经在属性文件中配置了路径。现在我想使用 azure 文件系统来实现相同的目标。我怎样才能做到这一点?我看到了一些使用 Azure SDK 的方法,但我想知道是否有任何替代方法可以在不更改现有代码的情况下将内容存储到 Azure 文件系统中的文件中,这意味着只更改属性文件。

标签: javaazure

解决方案


根据我的理解,我认为您希望在不使用 Azure 存储 SDK 和更改代码的情况下将 Azure 存储与本地文件系统一样使用,而只需使用 Java 中的 POSIX 文件系统 API。

据我所知,根据我的经验,有两种方法可以满足您的需求。

  1. 将 Azure 文件共享创建为 NFS 并使用WindowsLinuxMacOS安装它。
  2. 如果适用于 Linux,您还可以使用 Azure Blob 存储将容器作为目录装载到文件系统。Github 上有一个 Azure 官方项目azure-storage-fuse,它通过 Linux FUSE 内核模块为 Azure Blob 存储实现了一个虚拟文件系统适配器,如下面的介绍。它与 POSIX 并不完全兼容,但对于大多数场景来说已经足够了。

熔断器

关于

blobfuse 是一个开源项目,旨在提供由 Azure Blob 存储支持的虚拟文件系统。它使用 libfuse 开源库与 Linux FUSE 内核模块进行通信,并使用 Azure Storage Blob REST API 实现文件系统操作。

Blobfuse 是稳定的,并且受 Azure 存储支持,因为它在此处记录的限制范围内使用。如有任何问题/请求/疑问,请在此处提交问题。

特征

  • 在 Linux 上挂载 Blob 存储容器
  • 基本文件系统操作,如 mkdir、opendir、readdir、rmdir、open、read、create、write、close、unlink、truncate、stat、rename
  • 本地缓存以改善后续访问时间
  • 用于快速访问大型 blob 的并行下载和上传功能
  • 允许多个节点为只读场景挂载同一个容器。

上述两种方法将在本地文件系统中创建一个挂载点来执行基本的文件操作,如在本地目录中。


推荐阅读