大家好,才是真的好。
远程共享文件有很多办法,其中值得注意的是SFTP方式。SFTP即SSH文件传输协议,通过使用SSH传输层,SFTP可以通过Internet连接安全地访问和移动大量数据文件。
今天我们就介绍使用Domino中的HTTP OSGI方式来实现该功能。OSGI概念在很多地方都有解释,简单来说,就是Open Service Gateway Initiative。OSGI允许将软件或应用作为独立的组件编写和执行,这些组件被称为 bundle。
从Notes/DominoR8.5.2(大约2010年发布)开始,Notes客户机和Domino服务器都使用 Eclipse来作为其OSGI的运行时平台。
利用这一特性,我们能轻松地扩展和实现各种超乎想象的以Domino为运行平台的功能,例如以前我们提到过的FTP服务器,今天要实现的SFTP。
当然,我们不生产砖,用别人烧好的砖来搬——简单来说,造不了轮子。
该功能组件可以在著名的openntf上下载:
https://openntf.org/main.nsf/project.xsp?r=project/NSF%20File%20Server
之后解压放到Notes客户机的数据目录。
然后开始我们今天的测试之旅。
首先,我们还是使用updatesite.nsf来实现基于NSF的Eclipse组件功能更新,简单来说,就是采用模版Eclipse Update Site(updatesite.ntf)来创建一个数据库,名字就叫做updatesite.nsf,比如按ctrl+n,然后按下图输入数据库名称:
如果你是第一次创建updatesite.nsf,我们建议在notes.ini中输入语句OSGI_HTTP_DYNAMIC_BUNDLES=updatesite.nsf,然后重启一下Domino服务。
接着打开updatesite.nsf数据库,点击“Import local Update site”按钮,导入我们刚才解压的文件中的site.xml文件,如下图所示:
这样功能插件就导入进去,效果如下图所示:
但是我们的配置在哪里呢?比如说通讯的端口号,哪个数据库或者是文件夹作为sftp目录?用户该如何进行登录验证?等等,这时候我们需要创建一个配置数据库。再次按ctrl+n键,根据fileserverconfig.ntf模板创建一个叫做fileserverconfig.nsf应用,如下图:
创建创建完成之后,打开该数据库,找到服务器配置视图,点击创建下面的服务器配置
在服务器配置表单当中,先设置当前能不能复制的名字,然后在sftp区段当中设置端口号9022,并开启用户名和密码验证,如下图所示:
再找到映射视图,点击创建。在该表的当中,我们设置一个路径叫files,然后设置类型为nsf File Store即nsf文件存储,并设置数据源的数据库名称,例如filestore.nsf,如下图所示:
这个我们肯定需要创建一个数据源filestore.nsf,还是按快捷键ctrl+n,在出现的新建应用程序对话框当中,输入文件名filestore.nsf,如下图所示:
然后你可以为该数据库设置普通的访问控制列表acl,例如加入一个专门用户,有作者以上的权限。
我们打开该数据库,在里面输入一些数据(要么创建文件夹,要么创建文档并带有附件),如下图所示:
最后,你可以在Domino控制台上输入命令restart task http来查看到一个叫做sftp的任务已经启动,如下图:
甚至能看到该任务运行的端口号是9022:
SFTP中客户机端可以采用WinSCP或SFTP,我们这里采用WinSCP客户机,进行登录,输入主机名和端口号,Domino中的用户名和密码:
这时我们就可以以层次的方式来显示filestore.nsf数据库里面的文档附件,如下图所示:
是不是非常简单?相信也难不倒你。
而且该SFTP功能不仅仅可以只访问windows数据库当中的各种文件和附件,也可以设置直接访问操作系统路径下的文件和其他方式文件等等。
今天我们就介绍到这里。
后欢迎搜索公众号“协作者”来关注我。