S3的Node.js / Awssum

您好:我想知道是否有人知道一个方法列出S3节点的所有文件与node.js和Awssum,从最近的文件开始。

默认情况下,我的代码采用第一个创build的文件。

function getFileList(callback){ s3.ListObjects(coldBucket, function(err, data) { var fileList = getFilenames(data, coldBucketPath); callback(fileList); }); }; 

任何帮助深表感谢! 谢谢。

这是AwsSum的创造者Andy。

这是正确的,没有办法按照插入的时间顺序询问S3的文件名。 但是,您可以使用LastModified获取它。

如果你想看一个例子来获取所有的键,请看这里的例子:

然后,您可以将每个项目存储在一个数组中,然后使用LastModified对其进行sorting。 下划线库包含一个对此有用的函数:

我在看http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html ,我不相信s3允许你指定响应的sorting顺序。

但是,您可以通过将文件结构更改为包含以创builddate命名的文件夹来解决此问题,然后可以使用最近几天/几个月/月等的前缀执行一些ListObjects请求。

例如,您可以使用year-month文件夹名称,以便您的文件结构如下所示:

 bucket_name/ - 2012-3/ - file2.jpg - file3.jpg - 2012-2/ - file1.jpg 

然后在您提出请求之前,请执行此操作

 var now = new Date(); coldBucket.Prefix = now.getFullYear() + "-" + now.getMonth(); 

然后,如果你想要更老的东西,你必须做前几个月的后续请求。

(如果你有太多的文件,你可以尝试year-month-day