全面了解小米文件存储服务-FDS
小米文件存储服务简称FDS,是小米生态云上的分布式对象存储服务,为生态链企业提供弹性、高可用的云端文件存储服务。
FDS采用了Bucket/Object数据模型,跟业内主流系统(S3 OSS KS3)保持一致,方便开发者理解,降低使用门槛,提供了直观易用的Restful API,同时,在架构上具有良好的水平扩展性,对用户提供7x24高可用的服务。
接入方式
FDS向开发者提供了简洁直观的RestfulAPI,开发者可以通过标准HTTP协议来调用FDS的 API。同时,FDS提供了多种SDK,包括Java、Php、Python、C++、Android、Ios、Javascript,便于开发者根据应用开发需要选择合适的SDK。
认证方式
FDS提供了3种认证方式:
1
OAuth认证
该认证主要是用户移动端。具体时序图如下:
2
签名认证
通过将请求和获取的secret key生成签名,然后签名和access key组合生成一个”Authorization”的Header中,并发往FDS。之后,FDS会通过”Authorization”的Header解析access key和签名,用access key获取到对应的secret Key,使用同样的签名算法计算签名,得到服务端签名,最后跟”Authorization”的Header中的签名进行比对,最终可以确定是否通过。
3
预签名认证
开发者需要自己维护预签名下发服务器,由预签名下发服务器调用FDS SDK产生预签名链接。由于签名信息在url中,所有http请求请使用https协议。
功能应用
除了常见的文件、图片、用户数据存储,文件上传下载,小米FDS还提供日志分析、时间通知、图像处理、分片上传等功能。
1
日志分析&时间通知
日志分析是和小米EMR进行配合使用的,利用EMR在FDS上执行日志分析任务。
Notification是FDS的事件通知机制,用户可以为Bucket开启Notification,FDS会将PUT/POST/DELETE事件消息发送到用户指定的EMQ中,用户可以从EMQ中读取事件消息。
2
图像处理
FDS可以通过http和sdk来获取缩略图,以此来保存网页或者是应用需要的静态图片。
3
分片上传
分片上传是为了将Object拆分成若干个Part进行上传的功能,其优点:
◆高throughput —Part可以并行地上传。
◆断点续传 —当网络出现问题后,仅仅需要重传失败的Part。
◆上传不提前知道大小的Object — Object可以边创建边上传。比如,用户通过一个stream接受数据,然后上传到FDS的场景。
4
跨站点同步&多版本应用(即将上线)
跨站点同步会将每个上传到来源存储桶的对象复制到您选择的不同 FDS 区域中的目标存储桶中,保证某个区域故障后,文件不会丢失。
另一个新增功能可以使用多版本功能来保存、检索和还原它们的各个版本。这样,您就能够轻松的从用户意外操作和应用程序故障中恢复数据。
5
生命周期(即将上线)
生命周期功能可以配置TTL规则,使得文件自动过期删除,管理更方便。
开通服务
FDS的申请流程也很简单,只需要用小米账号在开放平台注册成开发者就能使用(已经成为开发者的可以直接申请使用)。
目前新版FDS已经在生态云金山云-北京6和AWS-北京两个区域上线,9月底将在各个海外区域全面上线。开通新版FDS的流程更加简单,无需事先在小米开放平台注册成为开发者,登录生态云后即可直接使用,强烈推荐生态链企业开发者使用新版FDS。
开通老版FDS,需要使用小米账号在小米开放平台dev.mi.com注册成开发者,审核通过后方可登录生态云使用FDS(已经成为开发者的可以直接使用)。
具体快速入门手册,赶紧戳“阅读原文”吧!