Node.js / Awssum для S3 - PullRequest
       8

Node.js / Awssum для S3

4 голосов
/ 18 марта 2012

Привет: Мне интересно, знает ли кто-нибудь метод для перечисления всех файлов внутри корзины S3 с помощью node.js и Awssum, начиная с самого последнего файла .

По умолчанию мой код берет первый созданный файл.

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

Любая помощь очень ценится!Благодарю.

Ответы [ 2 ]

2 голосов
/ 05 мая 2012

это Энди, создатель AwsSum.

Это верно, нет способа спросить у S3 имена файлов в порядке вставленного времени. Однако вы можете получить его, используя LastModified.

Если вы хотите увидеть пример, чтобы получить все ключи, посмотрите этот пример здесь:

Затем вы можете сохранить каждый элемент в массиве, а затем отсортировать его с помощью LastModified. Библиотека подчеркивания содержит функцию, которая была бы полезна для этого:

0 голосов
/ 23 марта 2012

Я смотрю на http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html, Я не верю, что s3 позволяет вам указать порядок сортировки ответа.

Однако вы можете обойти эту проблему, изменив файловую структуру, включив в нее папки, названные в честь даты их создания, и затем вы можете сделать пару запросов ListObjects с префиксами за последние дни / месяцы./etc.

Например, вы можете иметь 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...