Javascript S3的Node.js/Awssum
大家好:我想知道是否有人知道一种方法,可以用node.js和Awssum列出S3 bucket中的所有文件,首先从最新的文件开始 默认情况下,我的代码接受第一个创建的文件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); });
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
如果您想查看获取所有密钥的示例,请参见以下示例:
getFilenames()
返回的?它返回一个带有amazon映像路径的文件名数组。您可能只是想回调(fileList.reverse())代码>?尝试过这个方法后,它无法工作,因为bucket中有成千上万的图像,并且您需要设置多个Max键…例如,您可以使用标记
参数来设置从bucket获取项目的起点。我找不到您正在使用的JS库,因此我无法查看代码来说明如何操作。