【问题标题】:How to store uploaded AEM Forms files (pdf, xls) outside of the AEM CRX repository?如何在 AEM CRX 存储库之外存储上传的 AEM Forms 文件(pdf、xls)?
【发布时间】:2016-08-02 23:29:57
【问题描述】:

我在我的 Adob​​e Forms 中使用了开箱即用的 guidefileupload 组件,但不幸的是,由于某些业务需求,该组件无法工作:

  • 所有上传的文件都必须存储在默认 AEM CRX 存储库之外。我想在我的服务器上设置一个新的文件共享并将仅在 guidefileupload 组件中使用的所有文件上传到该位置(DAM 将无法工作,因为它是 CRX/AEM 的一部分)。
  • 我需要对所有上传的文件进行 Base 64 编码。

对于使用什么组件或如何解决这个问题,有人有什么好的建议吗?

【问题讨论】:

    标签: aem


    【解决方案1】:

    根据您的架构,有多种方法可以实现它 -

    • 如果您想在 AEM 中执行此操作并将内容存储在 CRX 之外,您可以将连接器写入数据库或扩展存储数据的社交社区功能用于分离 Mongo 数据库实例。请参阅 Adob​​e 的文档here。基本上没有什么 OOTB 盒子可以按原样使用,您可以做的是适应这个概念并拥有自己的东西来做同样的事情。
    • 另一种方法是运行一个单独的容器,该容器托管一个 servlet 来接受 POST 内容(您的文件/资产)并将其保存到 DB。要采用这种方法,您可以参考RequestDispatcher for remote server?

    对于 Base64 编码,您可以在其他容器上执行此操作,请参阅 Apache Commons Codec,如果在 AEM 中实施,您可以使用 org.apache.jackrabbit.util.Base64

    【讨论】:

    • 感谢@Ameesh,我们将调查这些方法中的每一种,并让您知道它们是否适用于我们的解决方案。
    【解决方案2】:

    这个问题已经很老了,但我想我会插话。如前所述,有几个选项可以处理这个问题,但目前最简单的方法之一是创建提交 servlet 并配置您的自适应表单以提交到一个 REST 端点,它实际上就是你的 servlet:Adobe-Consulting-Services/acs-aem-samples - SampleAllMethodsServlet.java

    通过处理 servlet 中的多部分参数,您将能够处理上传的文件附件,并将它们存储在您想要的任何位置:Handling File Upload in Adobe CQ

    也可以配置数据库连接器之类的东西来存储这些附件:Injecting a DataSourcePool Service into an Adobe Experience Manager OSGi bundle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2015-01-13
      相关资源
      最近更新 更多