Я отлаживаю ваш код и помещаю личный файл на S3 и получаю ту же ошибку при использовании кода, который вы упомянули выше. Проблема с инициализацией клиента s3 заключается в том, как я исправил клиента s3.
Если вы читаете документацию, они упоминают, как настроить AWS-S3
https://www.npmjs.com/package/s3#create-a-client-from-existing-awss3-object
var fs = require('fs');
var s3 = require('s3');
var stdio = require('stdio');
var AWS =require('aws-sdk')
var client1 = s3.createClient({
maxAsyncS3: 20, // this is the default
s3RetryCount: 3, // this is the default
s3RetryDelay: 1000, // this is the default
multipartUploadThreshold: 20971520, // this is the default (20 MB)
multipartUploadSize: 15728640, // this is the default (15 MB)
s3Options: {
accessKeyId: "***********",
secretAccessKey: "********"
},
});
// initilize wtih s3 client
var awsS3Client = new AWS.S3(client1);
var options = {
s3Client: awsS3Client,
// more options available. See API docs below.
};
var client = s3.createClient(options);
var params = {
// local directory with file name
localFile: "./test.jpg",
s3Params: {
// bucket name
Bucket: "cf-logs.test.com",
// folder and file name to download
Key: "test/Horse Racing.jpg",
},
};
var downloader = client.downloadFile(params);
downloader.on('error', function(err) {
console.error("unable to download:", err.stack);
//err.stack returns as "Error: http status code 404"
});
downloader.on('progress', function() {
console.log("progress", downloader.progressAmount, downloader.progressTotal);
});
downloader.on('end', function() {
console.log("done downloading");
});