我对键有以下选择:
delete(id) {
this.service.deleteUser(id).subscribe(
()=> console.log(`Employee with Id = ${this.employee.id}deleted`),
(err) => console.log(err)
);
}
我只想过滤元数据-> ShortMetadata,LongMetadata和HalfMetadata。
无法找出使用模式匹配的好方法。
我查看了cat/dog/<random_value>/ShortMetadata
cat/dog/<random_value>/bird/LongMetadata
cat/dog/<random_value>/values
cat/dog/bird/frog
cat/dog/<random_value>/bird/<random_value>/HalfMetadata
上给出的选项,但发现只能使用ListObjectsV2Request
或.prefix
(我想寻找的是后缀。)
看起来像:
.delimiter
或:
ListObjectsV2Request().withBucketName(bucketName).withPrefix(Pattern.compile("*/*Metadata"));
有人可以建议做什么吗?
答案 0 :(得分:1)
您说的很对,您需要一种基于后缀来过滤键的机制。
不幸的是,到目前为止,这在S3中是不可能的。您有以下选择
选项1
为Metadata对象添加某种后缀。也许如下
cat/dog/Metadata/<random_value>/ShortMetadata
cat/dog/Metadata/<random_value>/bird/LongMetadata
您可以在此处搜索前缀cat/dog/Metadata
。但是此选项的可行性完全取决于您的程序逻辑
选项2
如果您经常需要该信息,则可以以某种持久性(RDBMS或DynamoDB)存储密钥
选项3
如果要排序的对象数量不是很大,那么显然您可以列出整个键集并筛选出所需的对象。但这将不是一个可扩展的高性能选项