Я могу загрузить и загрузить архив, используя 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);
}
});