我在CQ5中添加了名为./dc:sample
的自定义元数据。有没有办法可以通过编程方式为资产设置此元数据?
我编写了一个截取上传资源的工作流程,并将其替换为第三方服务发送的inputstream
。我通过在工作流程中执行以下操作来实现此目的。
Rendition rendition = resource.adaptTo(Rendition.class);
Asset asset = rendition.getAsset();
InputStream newInputStream = myService.sendFile(is);
asset.addRendition(rendition.getName(),newInputStream,asset.getMimeType());
问题
此时我想将./dc:sample
元数据设置为类似“test checking”的字符串。这可能吗?
答案 0 :(得分:2)
您可以调整Asset
到Resource
,获取其jcr:content/metadata
孙子并将其调整为ModifiableValueMap
:
Resource metadataRes = asset.adaptTo(Resource.class).getChild("jcr:content/metadata");
ModifiableValueMap map = metadataRes.adaptTo(ModifiableValueMap.class);
map.put("dc:sample", "test checking");
resourceResolver.commit();