如何在创建资产期间以编程方式在资产中添加自定义元数据字段
How to add custom metadata field in Asset programatically during the creation of asset
我想在资产创建过程中在资产中添加自定义元数据字段。我参考了资产 class 和资产管理器 class 的文档。我已使用 createAsset 函数创建资产。
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dam="http://www.day.com/dam/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:mixinTypes="[mix:referenceable]"
jcr:primaryType="dam:Asset"
jcr:uuid="11111111111111111111111">
<jcr:content
dam:relativePath="demo/demo"
jcr:lastModified="{Date}2016-10-12T21:13:27.224+05:30"
jcr:lastModifiedBy="dam-replication-service"
jcr:primaryType="dam:AssetContent">
<metadata
dam:extracted="{Date}2016-10-12T21:13:27.164+05:30"
dam:sha1="17cb9a4ba368ff01951a11c3ca7e3f8348eee59c"
dam:size="{Long}1184"
dc:format="application/demo"
jcr:mixinTypes="[cq:Taggable]"
jcr:primaryType="nt:unstructured"/>
<related jcr:primaryType="nt:unstructured"/>
</jcr:content>
</jcr:root>
这是一个演示代码。我想在元数据中添加一个额外的 属性 说:source="xyz"。我也提到了这个 link Adding additional Metadata field in AEM-DAM。
有人可以帮帮我吗。
提前致谢。
不完全清楚您在添加额外的元数据字段时遇到了什么问题。有几种方法可以做到这一点 -
- 按照说明覆盖元数据表单并添加其他字段here
- 如果源是可自动识别的,您可以添加自定义流程(编写您自己的流程步骤,然后添加到模型)步骤来更新资产工作流程 -
/etc/workflow/models/dam/update_asset.html
或编写事件侦听器(流程密集型,因为它当通过工作流导入和处理资产时将被多次调用)监听资产变化并添加元数据字段
使用java Sling 你可以这样添加我希望如此:-
session = resource.getResourceResolver().adaptTo(Session.class);
Node node = session.getNode(resource.getPath());
node.setProperty("hpe-un:objec_name", "my text");
我想在资产创建过程中在资产中添加自定义元数据字段。我参考了资产 class 和资产管理器 class 的文档。我已使用 createAsset 函数创建资产。
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dam="http://www.day.com/dam/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:mixinTypes="[mix:referenceable]"
jcr:primaryType="dam:Asset"
jcr:uuid="11111111111111111111111">
<jcr:content
dam:relativePath="demo/demo"
jcr:lastModified="{Date}2016-10-12T21:13:27.224+05:30"
jcr:lastModifiedBy="dam-replication-service"
jcr:primaryType="dam:AssetContent">
<metadata
dam:extracted="{Date}2016-10-12T21:13:27.164+05:30"
dam:sha1="17cb9a4ba368ff01951a11c3ca7e3f8348eee59c"
dam:size="{Long}1184"
dc:format="application/demo"
jcr:mixinTypes="[cq:Taggable]"
jcr:primaryType="nt:unstructured"/>
<related jcr:primaryType="nt:unstructured"/>
</jcr:content>
</jcr:root>
这是一个演示代码。我想在元数据中添加一个额外的 属性 说:source="xyz"。我也提到了这个 link Adding additional Metadata field in AEM-DAM。 有人可以帮帮我吗。 提前致谢。
不完全清楚您在添加额外的元数据字段时遇到了什么问题。有几种方法可以做到这一点 -
- 按照说明覆盖元数据表单并添加其他字段here
- 如果源是可自动识别的,您可以添加自定义流程(编写您自己的流程步骤,然后添加到模型)步骤来更新资产工作流程 -
/etc/workflow/models/dam/update_asset.html
或编写事件侦听器(流程密集型,因为它当通过工作流导入和处理资产时将被多次调用)监听资产变化并添加元数据字段
使用java Sling 你可以这样添加我希望如此:-
session = resource.getResourceResolver().adaptTo(Session.class);
Node node = session.getNode(resource.getPath());
node.setProperty("hpe-un:objec_name", "my text");