- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 AEM 6.3。我正在使用 Assets API 使用 curl 命令上传资源。我就是这样做的:
curl -i 'http://localhost:4502/api/assets/newFolder' -H "Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"New folder"}}' -u admin:admin
我的用例需要创建中间目录(如果它们不存在)。像这样的事情:
curl -i 'http://localhost:4502/api/assets/intermediate1/intermediate2/newFolder' -H "Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"New folder"}}' -u admin:admin
在上面的例子中,intermediate1和intermediate2都不存在。 curl 不起作用,AEM 返回:
HTTP/1.1 500 Server Error
Date: Wed, 21 Aug 2019 14:13:35 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Set-Cookie: cq-authoring-mode=CLASSIC;Path=/;Expires=Wed, 28-Aug-2019 14:13:35 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
{"class":["core/response"],"properties":{"path":"/api/assets/intermediate1/intermediate2/newFolder","parentLocation":"/api/assets/intermediate1/intermediate2.json","referer":"","changes":[],"location":"/api/assets/intermediate1/intermediate2/newFolder.json","status.code":500}}
500 错误很奇怪。从日志中我可以看到:
21.08.2019 11:13:35.512 *ERROR* [0:0:0:0:0:0:0:1 [1566396815508] POST /api/assets/intermediate1/intermediate2/newFolder HTTP/1.1] com.adobe.granite.rest.impl.servlet.PostRequest Exception during request processing.
java.lang.NullPointerException: null
at com.adobe.granite.rest.assets.impl.AssetResourceProvider.getDataPropertyKey(AssetResourceProvider.java:412)
如果中间文件夹不存在,AEM Assets API 是否可能不支持创建它们?也许 500 错误只是一个错误?
最佳答案
有 2 个选项可以使用 Assets API。您可以尝试以下任一方法:
下面的示例显示在 Assets 层次结构中创建 2 个新文件夹。
选项1
curl -u admin:admin http://localhost:4502/api/assets/we-retail/* -F"name=newfolder" -F"title=New Folder"
结果:
{"class":["core/response"],"properties":{"path":"/api/assets/we-retail/*","parentLocation":"/api/assets/we-retail.json","referer":"","isCreate":true,"changes":[{"argument":"/api/assets/we-retail/newfolder","type":"created"}],"location":"/api/assets/we-retail/newfolder.json","status.message":"Created","title":"Content created /api/assets/we-retail/*","status.code":201}}
选项 2
curl -u admin:admin http://localhost:4502/api/assets/we-retail/newfolder/images -H"Content-Type: application/json" -d "{"class":"assetFolder","properties":{"title":"Images"}}"
结果
{"class":["core/response"],"properties":{"path":"/api/assets/we-retail/newfolder/images","parentLocation":"/api/assets/we-retail/newfolder.json","referer":"","isCreate":true,"changes":[{"argument":"/api/assets/we-retail/newfolder/images","type":"created"}],"location":"/api/assets/we-retail/newfolder/images.json","status.message":"Created","title":"Content created /api/assets/we-retail/newfolder/images","status.code":201}}
命令提示符中默认不识别单引号。将其更改为双引号应该可以工作
创建文件夹的其他方法,强制primarytype作为整个层次结构的sling:folder
curl -u admin:admin -Fjcr:primaryType=sling:Folder localhost:4502/content/dam/mFolder/aFolder
关于java - AEM Assets API : Create intermediate directories as required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57593733/
我使用的是 Adobe Experience Manager (AEM) 6.3。在基本结构中,组件文件夹包含内容文件夹和结构文件夹。在我们放置组件的两个文件夹中。这两个文件夹有什么区别? 最佳答
Sling 中选择器有什么用? http://www.resourcePath .选择器.扩展名 我看过网上关于选择器使用的文档: 一些文档说它用于缓存页面的响应,而使用查询参数时无法做到这一点。 虽
如何在 AEMsightly 中仅在预览/ Release模式下删除装饰标签? 我看过问题和答案:AEM/CQ: Conditional CSS class on decoration tag 这会删
我们需要将特定版本的页面保留一段时间,比如说一年。 如果我们使用版本管理器并提供“Max Version Age”和“Max Number Versions”,它将保留该数量的最新 x 个版本时间。
我需要在我正在配置的新实例中安装大型软件包。我正在为此使用包管理器,但安装需要很长时间。还有其他方法可以做到吗?此外,如果我可以获得有关存储 DAM 包的物理位置的信息,那将会很有帮助。 (例如:有什
这个问题在这里已经有了答案: How to use/understand AEM Sling Resource Merger, override and Overlay concepts (1 个回
我正在通过一些在线教程来学习 AEM。根据教程,创建组件时,需要在 Allowed Parents 或 Allowed Children 中输入一些值。但是,我在窗口中看不到这样的选项。当我尝试创建组
扩展组件、覆盖组件和覆盖组件有什么区别。有人可以从开发者的角度解释一下吗 最佳答案 延伸和叠加 是一样的。这只是一个术语问题。扩展和覆盖涉及将组件从/libs/(或其他基础库)复制到/apps 节点并
Adobe AEM(以前称为 Adobe CQ)中的客户端库 (ClientLib) 功能可以轻松地按类别包含客户端库,并且每个库都可以通过依赖项引入其他库。然而,关于“主题”的文档有点薄。 此
如何从浏览器查看发布者日志? 我尝试使用“http://localhost:4503/bin/crxde/logs?tail=1000”。但我没有得到日志。有什么方法可以启用它吗? 最佳答案 使用这个
请概述一下什么是 AEM 中的组件、页面、页面组件和模板。他们之间有什么关系。请尽可能举例说明。 建议任何网站作为初学者开始。 最佳答案 您有点混淆了技术和非技术术语。所以我尝试用两种方式来解释它:从
我正在尝试在列表组件的对话框上启用子编辑器,以允许用户将自定义组件添加到其中,例如来自核心的轮播组件。 我使用 AEM 6.5,并且 sling:resourceSuperType 是来自核心的列表。
使用 crx 包管理器在 AEM 中构建包时抛出错误“包构建未定义”。但是当我在 etc/packages/mypackages 下检查时,包被创建了。即使错误日志中没有错误或异常。我该如何解决这个问
在AEM 6.5的编辑模式下,如果我点击一个组件,会弹出上面的工具栏。除了通过在 CRXDE 上创建 cq:dialog 节点来添加对话框( Spanner 按钮)之外,您可以在工具栏上创建自定义按钮
在阅读在线 AEM 文档时,我了解到如何在 Debug模式下运行 AEM。 但是如何在远程 AEM 服务器上进行调试? 最佳答案 要使用远程调试,您必须使用此 JVM 参数启动 CQ5:-agentl
假设您有一个页面结构,称为: /content/site/en_us/foo/bar 您需要将 foo 页面从另一个环境移动到这个环境,但我们不想包含 bar 页面或任何其他子页面。 如果我定义一个包
我有一个服务于多个站点的 AEM 实例。一个站点正在使用一个组件。我想在另一个网站上使用这个组件。我不想将组件文件复制并粘贴到第二个站点并像那样拆分代码库。有谁知道在另一个站点上使用此组件的方法吗?
默认情况下,所有 GET 请求首先转到 DefaultGetServlet。基于扩展,它将请求委托(delegate)给渲染器。现在,如果请求 URI 中没有扩展名,为什么 AEM 会发送 403 (
我使用 ACS.CQ 库中的 xtype 'multifieldpanel' 进行 'multifield configuration'。而且我无法在我的对话框中设置“pathfield”的大小。我需
我正在使用 AccountManager API 来创建用户。当我不在注册表中使用个人资料图片并且用户注册时它工作得很好但是一旦我使用个人资料图片,我会收到以下错误: Caused by: javax
我是一名优秀的程序员,十分优秀!