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
)