使用 ListObjects
请求 (.NET AWS SDK) 时,有没有办法只列出键与给定模式匹配的文件?或者,更广泛地说,有没有办法使用 .NET AWS 开发工具包中的任何请求类型根据密钥从S3
查询文件?
我知道 AWS CLI 上可用的--query
参数,但我无法在 .NET 上找到等效的方法。
我正在寻找一种运行查询服务器端的方法,以便ListObjects
返回一组模式匹配的键。我想避免检索所有文件and then
过滤它们。
AWS CLI 使用 JMESPath 作为查询表达式。有一个名为 JmesPath.NET 的 .NET 端口,它与相同的 API 兼容并且维护良好。可以使用 SDK 检索结果集,然后使用 JmesPath.NET 表达式对其进行筛选。它也可以作为 NuGet 包提供。
CLI 上的--query
参数在输出时筛选结果集,类似于 JmesPath.NET 发生的情况。它不会影响 API 调用返回的内容。唯一可用于减少结果集的请求参数是 prefix
和 delimiter
,它们在逻辑上分组,就像文件夹结构在文件存储引擎中所做的那样。除非您的用例可以通过这些参数处理,否则您将无法在输出端进行过滤。