2017-04-12 3 views
0

사실 내 응용 프로그램에서 그들이 생성 된 zip 파일을 많이 를 사용하여 확장 (.ZIP)을 기반으로 S3 버킷에서 최근에 업로드 zip 파일을 다운로드합니다.어떻게 S3 버킷에 업로드 노드 JS

zip 파일 이름은 dfghgghg5565hgghghgh55.zip, fdfdfdfd44545ghghghg.zip과 같습니다. 어떤 이름이든 사용할 수 있습니다.

그렇다면 파일 확장명 (.zip)을 기반으로 압축 파일을 다운로드하는 방법은 무엇입니까?

답변

0

당신은 당신이 그것에서 1,000 개체에 일어나 그 통에 ListObjects 또는 ListObjectsv2를 호출 할 수 있습니다 당신을 위해 최선을 다하고 버킷을 알고 있다면. 새 파일에 대한 정보를 얻을 할 때마다

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property

var params = { 
    Bucket: 'STRING_VALUE', /* required */ 
    Delimiter: 'STRING_VALUE', 
    EncodingType: url, 
    Marker: 'STRING_VALUE', 
    MaxKeys: 0, 
    Prefix: 'STRING_VALUE', 
    RequestPayer: requester 
}; 
s3.listObjects(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
    // put code here to filter out just the .zips, then you can request those files with a GetObject() request 
}); 
+0

안녕하세요, 최근에 업로드 된 zip 파일을 가져와야합니다. 마지막으로 수정 한 날짜를 기준으로 S3에서 가져와야합니다. – Sharan

0

당신은 수동으로 람다 함수를 호출 할 수 있습니다. 이 코드를 사용하면 항상 마지막으로 수정되거나 생성 된 파일을 가져올 수 있습니다.

s3.listObjects(params, function (err, data) { 
if (err) 
    console.log(err, err.stack); // an error occurred 

var sortArray; 

data.Contents.sort(function(a,b) { 
    return (b.LastModified > a.LastModified) ? 1 : 
    ((a.LastModified > b.LastModified) ? -1 : 0); 
}); 

for(var file of data.Contents){ 
    if (file.Key.endsWith('.zip')) { 
     //extractData(file.Key); 
     break; 
    } 
} 

그러나 새 파일이 생성되지 않으면 동일한 파일을 두 번 이상 추출하는 문제가 발생할 수 있습니다. 나중에 파일 삭제를 사용하거나 해당 파일을 식별하는 다른 방법을 찾은 것이 좋습니다.

도움이 되었기를 바랍니다.

관련 문제