码农家园

关闭
导航

关于元数据:在 Alfresco 中为上传的内容添加属性


alfrescometadata

Adding properties to uploaded content in Alfresco

我正在使用 Alfresco Web Quick Start 创建一个基本的 CMS 网站。我想知道是否有人可以解释如何向我上传的内容添加属性/元数据。例如,如果我有一个图像库(具有作者、已发布、大小和 Mime 类型的默认元数据)并且想要获取数据属性等,我将如何实现呢?

我已经做了一些研究,但还没有找到具体的解决方案,任何关于这个问题的帮助将不胜感激!谢谢!


Alfresco 中给定节点的可用元数据由其类型和方面决定。

Alfresco 已经附带了一个 EXIF 方面(在此处查找"exif:exif"),您可能希望将其用于您的用例,不幸的是 WCM QS 隐藏了它。您应该创建一个 share-config-custom.xml 文件(此处为示例,官方文档),该文件应列出您要公开的 exif:exif 方面的所有字段。

类似下面的东西应该可以工作:

1
2
3
4
5
6
7
8
9
<config evaluator="model-type" condition="exif:exif">
    <forms>
        <form>
            <field-visibility>
                <show id="exif:dateTimeOriginal"/>                  
            </field-visibility>            
        </form>
    </forms>
</config>
相关讨论

  • 谢谢回复!我真正想做的是在我的系统中为不同类型的内容创建自定义元数据。所以在 exif 方面暴露不同的字段并不能真正解决这个问题。但是谢谢你的建议:)
  • 查看我回答中的第一个链接,这就是对内容类型和方面的完整解释所在。在这种情况下,您很可能应该使用方面来建模您的需求。


这是一种皇家的痛苦。

首先您需要创建一个模型。在该模型中,您需要创建一个方面。所有这些都在 XML 文件 #1.

中

然后你需要一个上下文文件来注册方面。这是 XML 文件 #2。

还有一个属性文件来给方面一个友好的名字。

还有一个 web-site-custom-config 来列出 XML 文件 1 中列出的所有属性。这是 XML 文件 #3

你需要一个共享自定义配置。这与 XML 文件 #3 的格式不同,但用途相同。

最后,您需要创建一个规则,自动将方面应用于文件夹中的每个项目。

参考:http://blogs.alfresco.com/wp/wabson/2010/02/25/adding-custom-aspect-support-in-alfresco-share/

share-custom-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
    <!-- Repository Library config section -->
    <config evaluator="string-compare" condition="RepositoryLibrary" replace="true">
        <!--
         Whether the link to the Repository Library appears in the header component or not.
        -->
        <visible>true</visible>
    </config>

    <config evaluator="string-compare" condition="DocumentLibrary">

        <!--
         Used by the"Manage Aspects" action

         For custom aspects, remember to also add the relevant i18n string(s)
            cm_myaspect=My Aspect
        -->
       
            <!-- Aspects that a user can see -->
            <visible>
               
               
            </visible>

            <!-- Aspects that a user can add. Same as"visible" if left empty -->
           
            </addable>

            <!-- Aspects that a user can remove. Same as"visible" if left empty -->
            <removeable>
            </removeable>
        </aspects>
    </config>

    <config evaluator="node-type" condition="cm:content">
        <forms>
            <form>
                <field-visibility>
                    <!-- fields from my example aspect -->
                    <show id="my:propOne" />
                    <show id="my:propTwo" />
                    <show id="my:propInt" />
                    <show id="my:propFloat" />
                    <show id="my:propDateTime" />
                    <show id="my:propDate" />
                    <show id="my:propBoolean" />
                    <show id="my:propQName" />
                    <show id="my:propCategory" />
                    <show id="my:propNodeRef" />
                    <show id="my:propPath" />
                    <!-- fields for android content -->
                    <show id="ac:propNotify" />
                    <show id="ac:propNotificationSummary" />
                    <show id="ac:propArchiveDate" />
                    <show id="ac:propPublishDate" />
                    <show id="ac:propPriority" />
                    <show id="ac:propRegion" />
                    <show id="ac:propMarket" />
                    <show id="ac:propDistrict" />
                    <show id="ac:propStore" />
                </field-visibility>
            </form>
        </forms>
    </config>


    <config evaluator="string-compare" condition="Remote">
        <remote>
            <endpoint>
                <id>alfresco-noauth</id>
                <name>Alfresco - unauthenticated access</name>
                <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
                <connector-id>alfresco</connector-id>
                <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                <identity>none</identity>
            </endpoint>

            <endpoint>
                <id>alfresco</id>
                <name>Alfresco - user access</name>
                <description>Access to Alfresco Repository WebScripts that require user authentication</description>
                <connector-id>alfresco</connector-id>
                <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                <identity>user</identity>
            </endpoint>

            <endpoint>
                <id>alfresco-feed</id>
                <name>Alfresco Feed</name>
                <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
                <connector-id>http</connector-id>
                <endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
                <basic-auth>true</basic-auth>
                <identity>user</identity>
            </endpoint>

            <endpoint>
                <id>activiti-admin</id>
                <name>Activiti Admin UI - user access</name>
                <description>Access to Activiti Admin UI, that requires user authentication</description>
                <connector-id>activiti-admin-connector</connector-id>
                <endpoint-url>http://localhost:8080/alfresco/activiti-admin</endpoint-url>
                <identity>user</identity>
            </endpoint>
        </remote>
    </config>

</alfresco-config>
相关讨论

  • 您可能还需要一种通过元数据提取器服务自动从文件中提取数据的方法。但是,如果您选择其中一个内置特性(例如 exif:exif),那么从文件中提取该数据的所有配置都已经存在!
  • 嘿乔纳森 :) 感谢您的快速回复。我按照您的示例创建了一个方面并创建了规则(创建项目或进入此文件夹或更新时,为所有项目添加方面)。但是,当我在文件夹中应应用方面的项目上单击"编辑属性"时,不会显示新属性。你知道这是为什么吗?非常感谢您的帮助!!
  • 您使用的是共享还是资源管理器?如果使用共享,则需要列出 C:\\\\\\\\Alfresco\\\\\\\\tomcat\\\\\\\\shared\\\\\\\\classes\\\\\\\\alfresco\\\\\\\\web-extension\\\\\\ 中的所有属性\\sha??re-config-custom.xml??。我将编辑我的答案以显示我正在使用的内容。
  • 我正在使用共享。我复制了您在上面使用的代码,但是当我添加规则以自动将方面添加到所需文件夹中的每个项目时,新方面在 DDL 中不可用。此外,如果我尝试手动添加新方面(即管理方面 -> 添加 aspect.my_sampleProps -> 应用更改),我会收到错误"无法更新方面"。我确定这可能只是我忽略的一些简单的事情。附:你对它是"一个皇家的痛苦"没有错;)
  • 给我发一封电子邮件到 [email protected],我会向你发送一个包含我的配置的 zip 文件。
  • 我现在没有"无法更新方面"错误消息,可以手动或基于规则添加方面。但是,当我在添加了方面的项目上单击编辑属性时,我看不到新方面应该添加的任何属性。 :(
  • 设法得到这个排序。感谢您的所有帮助!
  • @JonathanAllen,为什么不使用"zip"内容更新答案?
  • 太多了,我不知道哪些是重要的。 (而且我仍然没有,因为谢天谢地,我不必再使用这个荒谬的软件了。)


Copyright ©  码农家园 联系:[email protected]