如何在工作流程过程中访问资产

时间:2014-06-29 04:23:21

标签: java java-ee cq5 sling

我正在尝试为process step编写工作流程DAM update asset,以便将上传的资产发送到将修改资产的外部服务,然后将修改后的资产发送到{ {1}}步骤所以我已将我的流程步骤添加到DAM更新资产中,如下所示:

enter image description here

到目前为止我的代码看起来像这样:

Metadata extraction

这是我在上传资产时在日志中看到的内容:

执行方法中的Here2 Here2路径:/content/dam/photo1.JPG/jcr:content/renditions/original Here2 asset:null

问题

  • 我的外部服务有一个API接受HTTP请求。我应该如何将资产发送到外部服务?
  • 外部服务修改资产后,我该怎么做才能让元数据提取步骤读取修改后的资产而不是原始资产?

1 个答案:

答案 0 :(得分:2)

要通过HTTP访问外部服务,您必须编写客户端。 CQ提供commons-httpclient捆绑包,您可以使用它来访问该服务。可以找到该文档的文档here。我不知道服务是否期望使用PUT或POST发送文件,但httpclient提供了所有这些方法。您所要做的就是提供适当的InputStream。将您的资源调整为Rendition并使用getStream()方法获取InputStream

当您从网络服务获得修改后的资产时,您需要替换原来的资产:

// rendition = ...;      // original rendition object created as above
// newInputStream = ...; // new asset received from your webservice
Asset asset = rendition.getAsset();
asset.addRendition("original", newInputStream, rendition.getMimeType());