在开发中经常会遇到云存储的情况,各大云存储接口也不一致,为了统一接口同时也为了可以访问时像原生java的io访问一样,在需要使用存储文件时也不用考虑文件最后存储的位置,为此专门设计了一套架构(Agents)来解决。
整个设计主要分为3大部分:
1、客户端sdk:用于提供给对外的访问接口(InpuStream/OutputStream)
2、服务端:用于和客户端保持连接的同时完成客户端发送的执行命令(存储,读取,创建文件等)
3、存储适配bridge:对接相关的存储接口
为了保证和管理整个io的session,使用了grpc双向流的方式来保持session,目前该工程的客户端只有java的,其他语言暂时还没有提供,其他语言的客户端会陆续在我们的开源项目下发布,大家可以follow我们的组织(hitsz-ids)