我们最近服务了一个猎头的客户,他们提出要使用 FileMaker 来管理他们 20 万量级的简历。20万量级的简历,以 500K 每份(PDF或者包含头像的简历会大一些)的大小计算,也有近 95G。
熟悉 FileMaker 的都知道,容器是 FileMaker 上非常简便的存储文件的功能。但是却因为以下问题根本无法满足以上的要求:
1. 文件太大时会卡住;
2. 上传、下载速度慢;
3. 只能预览图片和PDF,较常见的 Office 无法预览;
4. 无法支持海量文件。文件太多会造成数据库文件过大,稳定性、性能和备份都会受到很大的影响。
不过,还好我们之前有处理此类需求的经验(存储4万张照片及短视频),很快就锁定了使用阿里云的 OSS(对象存储)来完成此需求。
OSS 是为互联网服务而推出的文件存储服务,能处理大并发访问和下载、大容量文件存储和 CDN 访问加速。用 OSS 来做企业系统的后台文件存储,可以说是十分的『小意思』吧。
FileMaker 对接 OSS 的过程为:上传文件,然后获得此文件链接并保存到 FileMaker 中。后续如果要预览文件时,就使用此链接在 Webviewer 中预览。其余的下载和删除也是同理,使用此链接进行相应的操作。其情形十分类似将文件以参考的形式保存在 FileMaker 的容器中。由此,fmp12 数据库文件得以保持十分小的容量,而文件数量又不限量。至于访问速度,OSS 与 FileMaker 服务器形成双线同时加载,自然比所有数据都从一台 FileMaker 服务器上获取更快。以下是 OSS 与容器的上传下载相对速度测试:
如此看起来,OSS 是个十分理想的『赋能』平台,但是却有一定的上手难度。在我们之前的项目中,我们开发的同事要写很多的前端代码才能实现上传的操作,且不易于推广。于是,趁着这次项目,我们跟『插件大神』振平合作了 OSS 操作的 FileMaker 插件。使用此插件,仅通过一个函数就可以对 OSS 进行上传、下载、加密访问和删除的操作,可以说是非常方便了。此项目目前已经上线,可用性已经得到验证。需要说的是,使用 OSS,可以直接预览更多原本不支持的文件格式(docx、pptx、xlsx、mp4、mp3、Markdown 等)。基于这些优势,我们后续凡是涉及到大量文件(年度产生G级文件)的系统,都会使用此种方法。
我们在做完之后,发现国外其实也有类似的做法,只不过他们对接的是亚马逊云的 S3 存储服务。所以,我们觉得此方案应该推而广之,让更多的中国开发者也可以用 FileMaker 管理海量文件。于是,我们制定了完整的插件功能清单。目前,已经完成了 1.0 版本的 Win 32/64 & macOS 版本。
我们会继续分享 OSS 从创建服务到 FileMaker 对接的过程。同时,我们会制作一份案例文件,仅供 FileMaker 18 入门视频教程的用户参考。
网友评论