我正在使用带有node.js的Amazon S3服务,我想使用Amazon S3 prefix
过滤目录中的所有.mp3文件。有一个sufix
参数,但没有var prefix = "myS3dir/";
bucket.listObjects({Prefix:prefix}, function(err, data){
//do something with data
});
。有没有办法使用正则表达式或像* .mp3之类的过滤器?
这是函数参考http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property
{{1}}
答案 0 :(得分:2)
没了。这对S3来说是不可能的。你只能通过前缀服务器端过滤。这与S3没有真正的密钥层次结构这一事实有关,它主要是一个key->对象存储,并且前缀匹配在那里工作。
如果你想做后缀匹配,你基本上必须拔出所有键的名称并检查它们的客户端。
答案 1 :(得分:1)
如果您需要通过.mp3文件扩展名查询并且S3对象的数量很小,那么只需枚举所有S3对象并提供您自己的内存中过滤器/查询。如果S3对象的数量巨大(如10k +,枚举速度慢),那么您需要一个不同的解决方案。假设您没有直接向最终用户公开S3结构,那么这里有一些想法: