Téléchargement du fichier Node JS AWS S3. Comment obtenir une réponse URL publique
Je suis le téléchargement d'un fichier vers Amazon S3 en utilisant le Nœud SDK.
Les uploads de fichier fonctionnent très bien, mais je veux obtenir l'url publique de le fichier à envoyer au client.
Au moment de la réponse que je reçois est:
Successfully uploaded data { ETag: '"957cd1a335adf5b4000a5101ec1f52bf"' }
Voici mon code. Je suis à l'aide d'un Nœud Express server, et Multer pour gérer les envois.
app.use(multer({ //https://github.com/expressjs/multer
dest: './public/uploads/',
limits : { fileSize:100000 },
rename: function (fieldname, filename) {
var time = new Date().getTime();
return filename.replace(/\W+/g, '-').toLowerCase() + time;
},
onFileUploadData: function (file, data, req, res) {
//file : { fieldname, originalname, name, encoding, mimetype, path, extension, size, truncated, buffer }
var params = {
Bucket: creds.awsBucket,
Key: file.name,
Body: data,
ACL: 'public-read'
};
var s3 = new aws.S3()
s3.putObject(params, function (perr, pres) {
if (perr) {
console.log("Error uploading data: ", perr);
} else {
console.log("Successfully uploaded data", pres);
}
});
}
}));
app.post('/upload-image', function(req, res){
if(req.files.file === undefined){
res.send("error, no file chosen");
}
});
source d'informationauteur Jack Wild
Vous devez vous connecter pour publier un commentaire.
Utilisation télécharger au lieu de putObject.
Il sera de retour url publique dans Emplacement clé