AEM/Adobe Experience Manager 仅将部分资产上传到 AWS S3

问题描述

我的公司正在使用 AEM 6.5,我们想从我们的系统中获得更好的性能。 我们的想法是只将一些资产(例如视频)上传到 S3 存储桶,并将其他资产保存在本地,我们不想将所有资产/数据存储上传到 S3。我知道我可以将数据存储切换到 S3,但这意味着所有资产都转到 S3,我们不希望这样。

限制:我们希望从 AEM 作者内部无缝上传视频,编辑器应该正常上传视频,并且在幕后以某种方式向 S3 过渡。

我检查了尽可能多的文档,但没有提到将部分资产上传到 S3,您要么使用完整的 S3,要么根本不使用(我们已经测试了完整的 S3 数据存储,它正在运行,但我们没有想要)。

所以,我的问题是:有人设法做这样的事情吗?

谢谢

解决方法

您是否考虑过编写 Adob​​e Experience Manager 工作流程,然后读取要上传的资产列表,然后仅更新那些指定的资产。在运行 AEM 工作流程之前,您可以控制将哪些资产上传到 Amazon S3 存储桶。

您可以按照此处的讨论创建自定义工作流程步骤。但是,在您的用例中 - 您将使用 S3 Java API 创建自定义工作流步骤。这是您可以控制哪些资产从 AEM 上传到 Amazon S3 存储桶的一种方式。

https://helpx.adobe.com/experience-manager/using/message_service_gateway_api_64.html

,

从技术上讲,可以将资产上传到 S3,将它们上传到 AEM 而不是将它们存储在 JCR 中。然而,这可能不会像您预期的那样工作,并且需要对 AEM 本身进行大量重构才能使其正常工作。

仅仅因为二进制文件存储在 S3 中,并不意味着 AEM 内部人员知道并可以处理它。

以作者的资产预览为例:AEM 的这一部分希望二进制文件存储在 JCR 中。现在您必须重写 AEM 的整个部分才能在 S3 中寻找这些资产。这将是一个非常令人头疼的问题,覆盖 AEM 的那些部分已经被弃用等等。这只是数百个示例中的一个,您需要找到解决方案。

不值得付出努力。

您可能需要对 S3 进行“全押”或保持原样。不确定此驱动器仅将 S3“部分”用于视频而不是所有资产的原因是什么。视频可能已经是您拥有的最大资产,因此它不能成为成本。我们使用 S3 数据存储运行纯资产安装,数据存储量为 20TB-60TB,完全没问题。