Поврежденная загрузка после загрузки архива в amazon Glacier Nodejs aws -sdk - PullRequest
0 голосов
/ 25 апреля 2020

Я могу загрузить и загрузить архив, используя AWS CLI (другими словами, я могу выполнить get-job-output из командной строки, и файл можно открыть), но когда я использую node.js glacier .getJobOutput для загрузки архива PDF, который я загрузил с помощью node.js, файл не откроется, и ошибка в том, что файл либо не поддерживается типом файла, либо потому, что файл был поврежден. Я получаю ошибку для изображений, а также.

Я пытался использовать Buffer.from и readFileSyn c, и оба выдают одну и ту же ошибку. Я также следовал ответу от travis , но мои загрузки все еще не действительны, если используется node.js glacier.uploadArchive.

Amazon API говорит, что я должен включить контрольную сумму, но на другой странице он говорит, что он автоматически вычисляется с uploadArchive. Я вижу контрольную сумму, сгенерированную, когда jobId возвращается после выполнения метода.

Я считаю, что glacier.getJobOutput правильно кодируется в моем приложении, потому что я смог загрузить архив, который я загрузил, используя метод CLI. Чего мне не хватает в процессе загрузки с использованием glacier.uploadArchive?

file = "path to my file" // example c:\directory\b0d5c022-6661-471b-979f-8769119bf8b3.PDF

    let body = fs.readFileSync(file);
    //let body = Buffer.from(file);

    var params = {
        accountId: "-", 
        archiveDescription: `some file info here`, 
        body: body,
        vaultName: this.vaultName
    };
    glacier.uploadArchive(params, function(err, data) {
        if (err) {
            reject(err);
        } else {
            // good response here
            resolve(data.archiveId);
        }
    });
...