Pimcore如何通过API获取文件名含指定字符串的所有Asset
问题根因及修复方案
你遇到的是Pimcore Data-Hub 1.0.8版本的兼容性写法问题,主要有3个错误点:
- filter参数格式错误:1.0.x版本的
getAssetListing不支持传入JSON序列化后的字符串格式filter,需要直接传入GraphQL对象字面量 - 过滤字段名错误:该版本下Asset文件名对应的GraphQL暴露字段为
key,不是你写的filename,字段不匹配导致过滤条件全程未生效 - 运算符写法错误:该版本的模糊匹配运算符不需要加
$前缀,直接写like即可
正确的查询语句
{ getAssetListing( filter: { key: { like: "%1%" } }, # 匹配结果超过默认分页上限(默认10条)时可自定义分页大小 pagination: { pageSize: 1000 } ) { edges { node { __typename ... on asset { fullpath key } } } } }
额外排查项
如果修改语句后还是返回空结果,请检查两处权限配置:
- 进入对应Data-Hub配置页的
Security标签,确认已勾选Asset资源的读取权限 - 确认你要查询的Asset所在的父文件夹,已给Data-Hub关联的API用户开放了查看权限
另外你提到的getAssets接口在1.0.8版本仅支持传入ID数组批量查询指定Asset,不支持过滤查询,列表查询统一使用getAssetListing即可。
内容的提问来源于stack exchange,提问作者Abenil
相关产品推荐
相关产品推荐

