Javascript S3的Node.js/Awssum

Javascript S3的Node.js/Awssum,javascript,node.js,amazon-s3,Javascript,Node.js,Amazon S3,大家好:我想知道是否有人知道一种方法,可以用node.js和Awssum列出S3 bucket中的所有文件,首先从最新的文件开始 默认情况下,我的代码接受第一个创建的文件 function getFileList(callback){ s3.ListObjects(coldBucket, function(err, data) { var fileList = getFilenames(data, coldBucketPath); callback(fileList); });

大家好:我想知道是否有人知道一种方法,可以用node.js和Awssum列出S3 bucket中的所有文件,首先从最新的文件开始

默认情况下,我的代码接受第一个创建的文件

function getFileList(callback){
s3.ListObjects(coldBucket, function(err, data) {
    var fileList = getFilenames(data, coldBucketPath);
    callback(fileList);
});
};
非常感谢您的帮助!谢谢

我认为s3不允许您指定响应的排序顺序

但是,您可以通过更改文件结构来解决这一问题,包括以创建日期命名的文件夹,然后您可以执行两个带有最近几天/几个月前缀的
ListObjects
请求

例如,您可以有
年-月
文件夹名,因此您的文件结构如下所示:

bucket_name/
    - 2012-3/
        - file2.jpg
        - file3.jpg
    - 2012-2/
        - file1.jpg
然后在你提出要求之前,先这样做

var now = new Date();
coldBucket.Prefix = now.getFullYear() + "-" + now.getMonth();
然后,如果你想要旧的东西,你必须在前几个月做一个跟进请求


(如果你有太多的文件,你可以试试
年-月-日

这是安迪,AwsSum的创建者

这是正确的,没有办法按照插入时间的顺序要求S3提供文件名。但是,您可以使用LastModified

如果您想查看获取所有密钥的示例,请参见以下示例:

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


什么是
getFilenames()
返回的?它返回一个带有amazon映像路径的文件名数组。您可能只是想
回调(fileList.reverse())?尝试过这个方法后,它无法工作,因为bucket中有成千上万的图像,并且您需要设置多个Max键…例如,您可以使用
标记
参数来设置从bucket获取项目的起点。我找不到您正在使用的JS库,因此我无法查看代码来说明如何操作。