适用于SAN/NAS系统的RESTful API

And*_*rew 7 media cloud api storage

我需要为集群文件系统卷上的文件构建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.

Igo*_*kov 4

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

研究WebDAV api的设计如果您不想按原样使用它也没关系,您只需将其作为 API 灵感来研究即可。看看如何stat()listFolders()setacl()可能只是一个命令。如果您正在寻找经过时间考验的东西 - 这就是您的选择。这个 API 是为基于 Web 的文件访问而设计的,人们在它周围放置了一些包装器,使其可以像任何其他文件系统一样安装 - 请参阅davfs2,对我来说,它是一个可靠且完整的 API 的证明。

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

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

查看Amazon S3 API作为灵感,并查看像littles3这样的代码作为实现示例。有很多这样的项目,检查这个搜索

请注意您想要的内容如何介于现有内容之间:

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

如果您想要适合您的域的 API

通常,当面临类似的挑战(如您的挑战)时,人们会利用他们的领域知识和用例。如果您需要此 API 来存储和检索图片,请忘记通用文件操作并围绕图像集合建模您的 API。您预先了解了很多信息,这使得 API 设计变得更加简单,例如:

  • 最小/最大/平均文件大小
  • 使用模式,读/写 I/O
  • 无需流媒体
  • 文件内容的不变性(无增量更改)
  • ETC