我需要为集群文件系统卷上的文件构建 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
请注意您想要的东西如何介于已经可用的东西之间:
如果您想要为您的域量身定制的 API
通常,当面临类似的挑战时,比如您的挑战,人们会利用他们的领域知识和用例。如果您需要此 API 进行图片存储和检索,请忘记通用文件操作并围绕图像集合建模您的 API。您预先知道很多信息,这些信息使 API 设计工作变得更加简单,例如:
关于api - 用于 SAN/NAS 系统的 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17262720/