Я пытаюсь сохранить объект S3 в каталог Express серверов / tmp /. Когда я запускаю код, я получаю сообщение об ошибке «ошибка s3.getObject: CredentialsError: отсутствуют учетные данные в конфигурации». Я вставил правильный config.credentials, но я не уверен, что происходит. Есть идеи, что может быть причиной проблемы? Ниже приведен фрагмент кода, когда я пытаюсь сохранить объект S3 в /tmp/.
var params = {
Bucket: "bucket_name",
Key: "key_name"
};
let s3Object = s3.getObject(params);
let wstream = fs.createWriteStream("/tmp/" + params.Key);
s3.getObject(params)
.on('error', function(err){
console.log('s3.getObject error:' + err);
})
.on('httpData', function(chunk){
console.log("Chunk Added to file.");
wstream.write(chunk);
})
.on('httpDone', function() {
console.log("The file has been saved to server local tmp folder.");
wstream.end();
}).send();
Весь блок кода.
const express = require('express');
const AWS = require('aws-sdk');
const forge = require('forge-apis');
const fs = require('fs');
const path = require('path');
var config = require('./config');
let PORT = "3000";
let app = express();
let s3 = new AWS.S3();
app.use("/public", express.static("./public/"));
app.get('/', (req, res, next) =>{
//Launch the local HTML websites
res.sendFile(path.join(__dirname + "/public/index.html"));
console.log("Site is Launched");
});
app.get('/download', (req, res) => {
//Hard Coded Object from S3
var fileKey = "Screen Shot 2019-12-25 at 9.32.34 PM.png";
//AWS Credentials
AWS.config.update({
accessKeyId: config.awscredentials.accessKeyId,
secretAccessKey: config.awscredentials.secretAccessKey,
region: config.awscredentials.region
});
var params = {
Bucket: "bucket_name",
Key: "key_name"
};
let s3Object = s3.getObject(params);
let wstream = fs.createWriteStream("/tmp/" + params.Key);
s3.getObject(params)
.on('error', function(err){
console.log('s3.getObject error:' + err);
})
.on('httpData', function(chunk){
wstream.write(chunk);
})
.on('httpDone', function() {
console.log("The file has been saved to Directory /tmp/.");
wstream.end();
}).send();
});
app.listen(PORT, function(){
console.log("Server is listening on", PORT);
});