通过REST API将媒体实体文档发布到Drupal 8

时间:2018-04-06 15:33:42

标签: rest drupal

我们正在寻找一种通过REST API模块将文档(pdfs)快速发布到drupal 8.5.1站点作为媒体实体对象的方法 - 与帖子相关联的元数据不仅需要包含名称和描述。文档以及文档所属的分类术语。

例如,如果当前目录中的文件名为“sample.pdf”(标题为“Sample Document”),则curl POST可能看起来像这样(遗憾的是我省略了任何内容以指示分类术语关联与文件):

curl --include \
  --request POST \
  --user <use>:<pass> \
  --header 'Content-type: application/hal+json' \
  --data-binary '@sample.pdf' \
  http://<domain>/entity/node?_format=hal_json

有没有人有任何经验/示例代码指出我们正确的方向?

2 个答案:

答案 0 :(得分:0)

Apache Tika是从不同文件类型中提取数据的绝佳工具。

您可能希望在发布文件之前提取元数据,在这种情况下,您可以创建一个脚本,其中包含您的pdf和帖子:

  • 与REST API一起使用的JSON数据
  • form-data与FORM API一起使用(使用curl选项--form并更改url以匹配相应的实体表单提交处理程序)。

或者您可以将文件内容作为一个整体发布,然后挂钩到Drupal实体保存过程以从内容流中提取文本和元数据并相应地更改实体。

答案 1 :(得分:0)

从 8.6.x 开始,您可以使用 Rest API 和 ressource FileUpload 上传您的文件,请看这里https://www.drupal.org/node/2941420

上传后,您将获得一个文件 ID,用于您领域中的端点实体/媒体(帖子)。