2012-03-17 3 views
4

안녕하십니까 : 가장 최근의 파일로 시작하는 node.js와 Awssum으로 S3 버킷의 모든 파일을 나열하는 방법을 아는 사람이 있는지 궁금합니다.S3 용 Node.js/Awssum

기본적으로 내 코드는 처음 만든 파일을 사용합니다.

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

도움이 되었습니까? 감사.

+0

()'반환 : 밑줄 도서관이 유용 할 것이다 함수를 포함? – Tomalak

+0

아마존 이미지 경로가있는 파일 이름의 배열을 반환합니다. – Matikus1trillion

+0

'callback (fileList.reverse()); '를 원할 수 있습니까? – Tomalak

답변

2

이 앤디, AwsSum의 창조자이다.

맞습니다. 삽입 된 시간순으로 파일 이름에 대해 S3를 묻는 방법이 없습니다. 그러나 LastModified를 사용하여 가져올 수 있습니다. 당신은 다음 정렬 한 후, 배열의 각 항목을 저장할 수

: 당신이 모든 열쇠를 얻을 예를보고 싶은 경우

것은, 여기이 예제를 참조 LastModified를 사용합니다.

0

나는 http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html을보고 있는데, 나는 s3가 응답의 정렬 순서를 지정할 수 있다고 믿지 않는다.

그러나 작성한 날짜 이후 이름의 폴더를 포함하도록 파일 구조를 변경하면이 문제를 해결할 수 있습니다. 그런 다음 ListObjects 개의 요청에 최근 일/월/일간 접두사가 포함될 수 있습니다.

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

을 당신이 당신의 요청을하기 전에 당신이 원하는 경우 다음, 다음 그리고이

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

을 수행하여 파일 구조는 다음과 같습니다 있도록

예를 들어, year-month 폴더 이름을 가질 수 오래된 것들은 이전 달 동안 후속 요청을해야 할 것입니다.

(당신도 그것에 대해 너무 많은 파일이있는 경우, 당신은 year-month-day을 시도해 볼 수도 있습니다)

관련 문제