모든 Amazon S3 파일 내부에 물통을 내에는 약속

0

질문

나를 잡으려고 노력의 수천에서 파일을 Amazon S3 에서 약속을 하지만 그럴 수 없는 것 그 밖으로 포함하는 방법을 ContinuationToken 내면 목록은 잘릴 수집하고 그것을 모두 함께서 약속입니다. 나는 초보자 JS 도움을 사용할 수 있습니다. 여기에 나는 지금까지:

getFiles()
    .then(filterFiles)
    .then(mapUrls)
;

function getFiles(token) {
    var params = {
        Bucket: bucket,
        MaxKeys: 5000,
        ContinuationToken: token
    };
    var allKeys = [];

    var p = new Promise(function(resolve, reject){
    s3.listObjectsV2(params, function(err, data) {
      if (err) { 
        return reject(err);
      }
      allKeys.push(data.Contents)
      if (data.IsTruncated) {
        s3.listObjectsV2({Bucket: bucket, MaxKeys: 5000, ContinuationToken: data.NextContinuationToken})
        console.log('Getting more images...');
        allKeys.push(data.Contents)
      }
      resolve(data.Contents);
    });
  });

  return p;
}

요 기능을 계속 실행될 때까지 내가 만든 목록의 모든 개체가 물통을 반환합니다.

amazon-web-services aws-sdk javascript
2021-10-25 16:01:51
2
0

당신이 필요 ContinuationToken 두 번째 시간만 있습니다.

var params = {
    Bucket: bucket,
    MaxKeys: 5000,
};

if (data.IsTruncated) {
    s3.listObjectsV2({...params, ContinuationToken: data.NextContinuationToken})

IMO,이것은 그냥 s3 함수 호출,두 번 더 중첩 전화입니다. 재귀할 때 자신을 호출 기능 까지 지정된 조건은 충족된다.

에 대한 자세한 재귀: https://medium.com/@vickdayaram/recursion-caad288bf621

2021-10-25 16:29:42

좋은 포인트-난데 제 질문은 더 세부 사항입니다. 요 기능을 계속하는 때까지 실행하고 모든 파일을 검색합니다.
AppleBaggins
0

할 수 있었 목록에 있는 모든 개체 물통을 사용하여 비동기/리고 아래 코드를 채우 훌륭한 기능들을 가지고 있습니다.

async function getFiles(objects = []) {
    const response = await s3.listObjectsV2(params).promise();
    response.Contents.forEach(obj => filelist.push(obj.Key));
    if (response.NextContinuationToken) {
        params.ContinuationToken = response.NextContinuationToken;
        await getFiles(params, objects);
    }
    console.log(filelist.length)
    return filelist;
}

감사에 도움이 모든 사람!

2021-10-26 00:59:26

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................