免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1075|回复: 8
收起左侧

利用FME Server API发布模板文件

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-10-26 14:09 | 显示全部楼层 |阅读模式
大家在使用FME产品时,了解最多的可能是FME Desktop,我们可以在FME Desktop中利用FME workbench组件进行FME的流程设计,形成我们自己的模板。在模板形成后可以在workbench中运行。这些都依赖于我们的FME Desktop。

当然,我们也可以不再FME Desktop中运行我们的模板,那么就需要用到FME Server,我们可以利用FME Desktop发布模板服务到FME Server,然后在FME Server中运行。但是,当你发布模板服务的时候,可能会出现FME Server服务连接不了,一直卡在“发布服务”的第一步,如下图中可能半天都没反应,别着急,下面为大家介绍一下如何利用python脚本来发布我们的模板到FME Server中。

FME Server,B/S的架构,使得最终用户不需要安装FME客户端就可以通过浏览器运行FME Server中的模板进行工作,当然,前提是你得有模板,并且你得把模板发布到FME Server上。那么如何在没有安装FME Desktop的情况下,你又恰好有一个模板,需要发布到FME Server上?

你需要确定计算机环境中是否正确安装了FME Server软件、Python环境。(本文采用的FME Server版本为19643,Python为2.7)


在FME Server中提供了API接口,登陆FME Server后在找到REST API,点击进入主页,在选项卡中选择”API”,FME Server中提供了很多接口,其中就包含发布模板服务的接口。

在FME Server中提供的API中,发布模板到FME Server需要调用两个API:

一个是模板文件上传服务

http://localhost:8080/fmerest/v3/repositories/<serverpath>/items

一个是为模板添加services的服务

http://localhost:8080/fmerest/v3/repositories/<serverpath>/items/<workspacename>/services


首先在FME Server中一个存储模板文件的目录,点击FME Server界面左侧导航栏中的“Repositories”选项卡,再点击“New”,新建一个“文件夹”用来存储模板文件。(本次新建为“AAAAA”)。

新建“AAAAA”后,点击进入发现里面没有任何模板文件。


利用python环境编写脚本语言,调用FME Server中的模板上传服务http://localhost:8080/fmerest/v3/repositories/<serverpath>/items,如下图:


“AAAAA”为第四步中新建的“文件夹”

“none2textline.fmw”为模板文件上传到FME Server中的存储名称,

“6693a715559c79218e16cfe6b2a50f153760589d”为FME Server中生成的token令牌,

“G:\\none2textline.fmw”为需要上传FME Server的模板存放在本地的完整路径。


设置好脚本并运行后返回“<Response [201]>”,查看接口中对应的代码显示模板文件上传成功,


返回FME Server中,进入“AAAAA”文件夹下查看,此时在该目录下已存在代码中上传的模板。


点击“AAAAA”文件夹下上传的模板文件,跳转到模板运行界面,发现第三个下拉框“Service”无法选择,那是因为还没有为该模板指定服务类型。



利用python脚本,调用“为模板添加services”的API,为指定的模板添加服务类型,在FME DESKTOP中,发布模板到FME Server,可以设置常用的服务类型包:

数据下载:"Data Download"

数据流:"Data Streaming"

任务提交:"Job Submiter"

KML网络链路:"KML Network Link"

通知:"Notification Service"。

本文中我们尝试添加"Data Download","Data Streaming","Job Submiter"这三个常用的服务类型,具体如下。

“AAAAA”为第五步中模板上传时存储的“文件夹”

“none2textline.fmw”为模板文件上传到FME Server中的存储名称

“6693a715559c79218e16cfe6b2a50f153760589d”为FME Server中生成的token令牌

"fmedatadownload","fmejobsubmitter","fmedatastreaming"为“AAAAA/none2textline.fmw”模板添加的服务类型。

设置好脚本并运行后返回“Response [200]>” ,查看接口中对应的代码显示模板文件上传成功,


再次返回模板运行界面,重新选择目标模板文件,进入运行界面,此时第三个下拉框“Service”可供选择的服务类型有三种,分别是:

数据下载:"Data Download"

数据流:"Data Streaming"

任务提交:"Job Submiter"

与脚本中预设服务类型一致。

选择对应的服务类型,点击“RUN”按钮,查看模板是否发布正确。

注意:本次测试使用的FME工程文件较为简单,如果涉及模板文件复杂,并且涉及配置文件等数据的上传,可能存在数据丢失,建议采用常规手段(FME Desktop)来进行模板的发布。
————————————————
版权声明:本文为CSDN博主「fmechina」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fmechina/article/details/104815940

11

主题

2万

铜板

9

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2746

童话节勋章

发表于 2021-10-26 14:37 | 显示全部楼层
66666666666666
回复 支持 反对

使用道具 举报

0

主题

281

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
28
发表于 2021-10-26 21:17 | 显示全部楼层

66666666666666
回复 支持 反对

使用道具 举报

0

主题

4381

铜板

3

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
214
发表于 2021-11-5 10:26 | 显示全部楼层
谢谢提供分享!
回复 支持 反对

使用道具 举报

0

主题

2万

铜板

1

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4824
发表于 2021-11-7 21:00 | 显示全部楼层
谢谢分享、学习一下。
回复 支持 反对

使用道具 举报

0

主题

5148

铜板

1

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2100
发表于 2022-7-3 16:35 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

6

主题

6134

铜板

5

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
582
发表于 2022-8-3 10:37 | 显示全部楼层
谢谢分享,楼主辛苦了
回复 支持 反对

使用道具 举报

0

主题

1047

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
399
发表于 2022-8-12 16:36 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

4万

铜板

7

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6445
发表于 2024-3-4 19:30 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

在线客服
快速回复 返回顶部 返回列表