[英]How to filter .mp3 files using Amazon S3 listObjects
我将Amazon S3服务与node.js结合使用,并且我想使用Amazon 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
});
不,这对于S3是不可能的。 您只能按前缀在服务器端进行过滤。 这与以下事实有关:S3没有真正的密钥层次结构,它主要是密钥对象存储,并且前缀匹配在那里起作用。
如果要进行后缀匹配,则基本上必须拉出所有键的名称并在客户端进行检查。
如果您需要通过.mp3文件扩展名查询并且S3对象的数量很少,则只需枚举所有S3对象并提供您自己的内存过滤器/查询即可。 如果S3对象的数量很大(例如10k +,这将很难枚举),那么您需要一个不同的解决方案。 假设您没有直接向最终用户公开S3结构,那么这里有一些想法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.