我正在使用亚马逊S3服务和node.js,我想使用亚马逊S3 listObjects()过滤目录中的所有.mp3文件。有prefix参数,但没有sufix。有没有办法使用正则表达式或像*.mp3之类的过滤器来实现这一点?
这是函数参考http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property
var prefix = "myS3dir/";
bucket.listObjects({Prefix:prefix}, function(err, data){
//do something with data
});发布于 2015-06-20 05:52:20
不,这在S3中是不可能的。服务器端只能按前缀过滤。这与S3没有真正的键层次结构有关,它主要是一个键对象存储,前缀匹配在那里工作。
如果你想做后缀匹配,你基本上必须取出所有键的名称,并在客户端检查它们。
发布于 2015-06-20 08:15:39
如果您需要按.mp3文件扩展名进行查询,并且S3对象的数量很少,那么只需枚举所有S3对象并提供您自己的内存过滤器/查询即可。如果S3对象的数量很大(比如10k+,枚举起来会很慢),那么您需要一个不同的解决方案。假设您不直接向最终用户公开S3结构,那么这里有一些想法:
https://stackoverflow.com/questions/30946924
复制相似问题