我们需要从简单的自动化脚本中获取Orbeon表单的附件。我们找到了"列表表格附件" API(https://doc.orbeon.com/form-runner/api/persistence/list-form-data-attachments.html)并尝试使用简单的" curl"来调用它。与Orbeon Tomcat实例在同一主机上运行的脚本:
curl -v "http://localhost:8080/orbeon/fr/service/$app/$form/attachments?document=$docid"
这会返回一个HTTP 403(Forbidden),即使在阅读了我们在Orbeon安全性上可以找到的任何文档之后,我们仍然对如何配置Orbeon感到头疼。是否有一个简单的配置示例显示了Orbeon配置,该配置允许从像我们这样的本地脚本调用API?我们正在运行Orbeon CE 2017.1。
如果让这个API工作是一个考验,我们考虑的另一个选择是数据库解决方案。我们让Orbeon在MySQL持久层上运行,我们使用的相同脚本也可以访问这个数据库。是否有一种简单的方法来获取提交的表单的XML并获取给定表单字段的附件?
我们在提交的表单XML中看到附件标记如下所示:
<File1 filename="Original Filename.doc" mediatype="application/msword" size="14236">
file:/tmp/tomcat7-tomcat7-tmp/xforms_upload_7266596219758922423.tmp?filename=Original+Filename+doc&mediatype=application%2Fmsword&size=14236&mac=fc2febb1227e93643a048fbb02abc16bba346531
</File1>
当我们扫描orbeon_form_data_attach数据库表时,我们会看到一行包含我们期望的文件内容,但file_name列与上面的XML格式的文件信息不匹配...在此示例中,数据库中的file_name是1af8cd16367470362e13f77e679c0ae590e1f4a5.bin
。我们的一些表单有多个附件,似乎并不是从表单XML到数据库表中的file_name的直接方式。
这些解决方案中的任何一个对我们都没问题 - 我们只需要一种从简单脚本获取表单附件的方法。
答案 0 :(得分:1)
供参考,相关文件为Authorization of Pages and Services。
您可以,虽然这不是为了生产而只是为了测试和开发,但是在没有身份验证的情况下打开所有服务。见this section。否则,您需要设置authorization service。