api - 用于 SAN/NAS 系统的 RESTful API

标签 api cloud storage media

我需要为集群文件系统卷上的文件构建 RESTful API。我有 20 台服务器,它们共享相同的文件系统。
我所需要的只是 RESTful API 服务,它允许我执行 stat()、read()、write()、listFolder()、delete()、setacl() 等。
其他一切都由集群文件系统处理,所以我只需要具备上述功能。
我需要一些非常成熟的东西,所以它支持访问控制列表,它具有高性能的 API(如 java 的),维护库或项目,并且它运行 Linux,锁定支持也将非常有用。我想自己添加额外的功能,比如 getDuration(),所以如果它是开源的,那将是优势。
如果您知道这样的代码可以帮助我构建这样的东西,我将不胜感激。

它的目的是允许 BPM 系统检查各个 Stornext 卷上的文件是否正常。由于这些系统位于各种防火墙后面,并且由于高可用性而安装 NFS 或 SMB 并不是很好,因此最好的选择似乎是 RESTful API 作为单一来源,通过 HTTP(S) 请求以某种方便的方式在防火墙区域之间进行所有文件操作做 NFS 或 SSH。

最佳答案

如果您想要一个非常通用的基于 Web 的 API 来操作文件

查看WebDAV api的设计如果您不想按原样使用它也可以,您只需将其视为 API 灵感即可。看看怎么样stat() , listFolders()setacl()可能只是一个命令。如果您正在研究耗时考验的东西 - 这就是一个。这个 API 是为基于 web 的文件访问而设计的,人们放了一些 wrapper 在它周围让它像任何其他文件系统一样可挂载 - 参见 davfs2 ,对我来说这是一个可靠和完整的 API 的证明。

现在假设你不想要完整的 DAV - 但是更简单的东西,那么我会研究一些可以帮助我构建类似 API 的库。看看这些:Jackrabbit WebDAV Library , milton.io .当然还有Jigsaw项目到钢材代码。使用它们通过 http 公开您的临时 APU 或选择的 StorNext API 调用。

如果你想要一个不太通用的 API 来操作 blob

退房 Amazon S3 API作为灵感,还有像 littles3 这样的代码作为一个实现示例。有很多这样的项目,检查这个search

请注意您想要的东西如何介于已经可用的东西之间:

  • webDAV(完整堆栈,从 API 到服务器实现),它隐藏和抽象出底层文件系统。非常高的级别,因此您无法利用 StorNext 功能
  • StorNext API 非常低级,因此不存在合适的 Web 层

  • 如果您想要为您的域量身定制的 API

    通常,当面临类似的挑战时,比如您的挑战,人们会利用他们的领域知识和用例。如果您需要此 API 进行图片存储和检索,请忘记通用文件操作并围绕图像集合建模您的 API。您预先知道很多信息,这些信息使 API 设计工作变得更加简单,例如:
  • 最小/最大/平均文件大小
  • 使用模式,读/写 i/o
  • 无需流媒体
  • 文件内容的不变性(无增量更改)
  • 关于api - 用于 SAN/NAS 系统的 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17262720/

    相关文章:

    json - http: panic serving [::1]:57685: 分配给 nil 映射中的条目

    api - YouTube Google 数据 API (GDATA) 是否已弃用?

    facebook - 如何判断一个 Facebook 用户是否上传了头像或者默认头像?

    java - 如何在Spring Cloud Gateway中添加额外的路径到uri

    shell - 在 Amazon EC2 中启动实例时传递脚本

    mysql - 将文件信息存储在数据库中

    javascript - 我想从组件外部运行 tanstack React 查询,因为我不能在那里使用 useQuery?

    algorithm - 如何在集群中运行的节点中选举主节点?

    Android Studio 安装与 Google Play 安装(设备上的应用大小)

    javascript - 网站如何在没有 cookie 或本地存储或数据库存储的情况下存储持久/临时状态?