找回密码
 立即注册

QQ登录

只需一步,快速开始

LukeLiu
超级版主   /  发表于:2020-8-13 14:50  /   查看:7734  /  回复:0
本帖最后由 LukeLiu 于 2020-8-26 09:23 编辑

当客户正式把活字格投入线上环境使用时,会考虑复用已经有的服务器,既方便了管理维护,又拉近了活字格服务与其他服务的“距离”。当我们面对“活字格使用第三方系统的静态资源”这样一个问题时,我们该如何拿出解决方法?不卖关子,答案是我们可以使用活字格服务为第三方服务的静态资源提供Web服务。下面,正文带你完整理解解决思路。

导入一个场景:对于一个部署了的ERP系统的服务器,我们再部署了活字格服务到同一台服务器中,然后呢,我们想在活字格的图片单元格引用第三方ERP系统内的图片资源,这个需求该怎么实现呢?如果我们能解决这个问题,也就解决了本文开始处产生的疑问。

那么这个时候,我们想一想,总结活字格的图片单元格两种方式加载图片:

1. 本地图片:使用图片单元格引用图片类型字段。
2. 网络图片:使用图片单元格引用一段图片的URL链接。

本地图片:先从原来的ERP系统中保存到本地,然后再上传到活字格应用内。这个方法不太可行。我们不可能把每一张图片手动的走一遍上传流程。首先是令人发指的工作量,再者这种方式也无法实现活字格里的图片资源与ERP系统内的图片资源保持同步,因为每一次人家第三方的ERP系统有新的图片了,咱们就要手动来一遍上传导入流程。这个思路对应的实现流程,想想都累手。弃~

网络图片:方式一无果,只能押宝方式二了。机智的你或许已经想到了,我们要把本地的图片变为网络图片的方式,但具体怎么办呢?同样想到两个具体的方式:

1. 使用IIS服务,给原来ERP系统里的图片目录设定webDAV服务
2. 使用Nginx,给原来ERP系统里的图片目录提供图片资源的Http服务

这些方法,这位客户火速举红牌。——哦,好尴尬呀,可为什么不可以呢?

——两个问题:
1. 安全问题:如果要公开图片资源的访问根目录,别人就可以通过访问目录的方式获取你全站的图片资源。这是大多数用户无法接受的事情。
2. 运行环境问题:为图片提供web服务,又要我安装新的软件或服务,有些用户在服务器上装一个新的软件是要走审批流程的,不是随意想装就装的。

要如何解决上面两个问题呢?

——我们直接使用活字格提供Web服务。首先我们要理解,当我们在给活字格的应用上传一张图片的后,发生了哪些事情:
1. 用户在客户端浏览器上传的图片,最终存储在活字格服务器的这个目录下:
  1. C:\Users\Public\Documents\ForguncyServer\[应用名称]\Upload
复制代码

image.png557599792.png

这里提个醒,这个目录是被活字格服务会对这个目录提供Web服务,也就是说,我们可以使用http请求获取到这个目录下的文件
2. 之后呢,我们可以通过URL,轻松就可以在浏览器中访问到该图片。

比如:
image.png219734496.png

伙计们,正是如此,我们把那个ERP系统的图片目录创建一个目录链接到发布应用的Upload目录下,就实现了以活字格的Web服务提供这些图片的Web访问。


注意:如果你有更改默认的存储路径设置,那么咱们就要在你设置的目标目录下创建图片目录的链接,但客户浏览器端访问的URL规则不变。

PS:创建目录链接并非是windows系统里的快捷方式,而是通过`mklink`命令创建的目录链接,具体参考这篇教程:[Windows 下创建目录链接](https://www.dazhuanlan.com/2019/10/27/5db47ca2e02f4/)
总结

伙计们,当我们需要结合第三方系统的静态资源时,我们有多了一种选择——活字格服务里的Web服务。我们使用它,既能维护好之前的权限设计,又不需要安装新的软件,方便的实现的我们在活字格中使用第三方服务的静态资源。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部