如何使用Java文件编写器将内容存储到Azure文件系统

时间:2019-01-14 13:40:02

标签: java azure

当前,我有使用Java中的文件输入流和输出流从本地文件系统存储和检索数据的代码。我已经在属性文件中配置了路径。现在,我想使用azure文件系统实现相同的目的。我该如何实现?我看到了一些使用Azure SDK的方法,但是我想知道有什么替代方法可以将内容存储到Azure文件系统中的文件中,而无需更改我现有的代码,这意味着仅更改属性文件。

1 个答案:

答案 0 :(得分:0)

根据我的理解,我认为您想像使用本地文件系统一样使用Azure存储,而不使用Azure Storage SDK和更改代码,而仅使用Java中的POSIX文件系统API。

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

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

blobfuse

     

关于

     

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

     

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

     

功能

     
      
  • 在Linux上安装Blob存储容器
  •   
  • 基本文件系统操作,例如mkdir,opendir,readdir,rmdir,打开,读取,创建,写入,关闭,取消链接,截断,统计,重命名
  •   
  • 本地缓存以缩短后续访问时间
  •   
  • 并行下载和上传功能可快速访问大块
  •   
  • 允许多个节点在只读情况下安装相同的容器。
  •   

以上两种方法将在本地文件系统中创建安装点,以执行基本文件操作,例如在本地目录中。