Как преобразовать тело буфера большого zip-файла, полученного через s3.getObject, в строку для извлечения zip-файла в другое ведро; - PullRequest
0 голосов
/ 05 марта 2020

Когда я использую функцию s3.getObject, при преобразовании возвращается тело в байтах, слишком длинный zip-файл, слишком длинный, чтобы использовать функцию .toString (). Мне было интересно, есть ли лучший способ преобразовать байты zip-файла в строку, чтобы я мог использовать эту строку для извлечения содержимого zip-файла в локальный каталог? Кроме того, мне нужно преобразовать ZIP-файл в байты в строку, чтобы я мог ссылаться на него для пути к файлу, чтобы распаковать файл?

// Make Directories for Zipped and Unzipped files
    try {
        const zipDirFolder = await mkdirp(localZippedFolder, { recursive: true })
        const unZipDirFolder = await mkdirp(localUnzippedFolder, { recursive: true });

        const folderChecker = fs.statSync(unZipDirFolder);
        console.log('Is unZipDirFolder a directory? ' + folderChecker.isDirectory());
        console.log('SUCCESS: unzipped directory created!');
        console.log('SUCCESS: zipped directory create!')

    // Download files from s3 Bucket
        await s3.getObject(params).promise()
        .then(data => {
            const fileData = data.Body;
            console.log(data);
            console.log('SUCCESS: starting to read data');
            console.log(fileData);
        });


        await new Promise((resolve, reject) => {
            // Extract files from zipped folder and store them in a local directory
           fs.createReadStream('/tmp/ZippedStudentData/Jerry-user-data.zip')
                .pipe(unzipper.Extract({path: unZipDirFolder}))
                .on('finish', resolve)
                .on('error', reject);
        });

    }   
     catch (error) {
        console.log(error);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...