2012-03-17 3 views
4

こんにちは、私は誰でも、の最新のファイルから始めて、node.jsとAwssumを持つS3バケット内のすべてのファイルをリストする方法を知っているのだろうかと思います。Node.js/Awssum for S3

デフォルトでは、私のコードは最初に作成されたファイルをとります。

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

ご協力いただきありがとうございます。ありがとう。

+0

'getFilenamesは()'を返すんか? – Tomalak

+0

アマゾンの画像パスを持つファイル名の配列を返します – Matikus1trillion

+0

'callback(fileList.reverse());' – Tomalak

答えて

2

これはアンディ、AwsSumの生みの親です。正しいです

は、挿入された時間のために、ファイル名のS3を求めての方法はありません。しかし、あなたはLastModifiedを使ってそれを得ることができます。

あなたはここに、この例を参照して、すべてのキーを取得する例を参照したい場合:

をあなたはそれをソートし、次に、配列内の各アイテムを保存することができLastModifiedを使用します。下線ライブラリは、このために有用であろう機能が含まれています

0

I http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.htmlを見て、私はS3は、応答のソート順を指定することができます信じていません。

ただし、ファイルの構造を変更して、作成日の後に名前が付けられたフォルダを含むようにすることができます。ListObjectsの要求に最近の日/月/などの接頭辞を付けることができます。

たとえば、あなたがあなたのファイル構造は次のようになりますので、year-monthフォルダ名を持つことができます:あなたはあなたの要求を行う前に、あなたが望むならば、この

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

を行うと、その後、

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

と古いものは前の月のフォローアップ要求を行う必要があります。

(あなたもそのためにあまりにも多くのファイルがある場合、あなたはyear-month-dayを試みることができる)

関連する問題