Node-js - Konfiguration von aws-s3-Bilder auf upload
Was funktioniert so weit:
Diese Funktion zu verwenden, ich bin dabei, Bilder sind hochgeladen auf meinen server, das versenden an eine aws-S3-bucket und dann löschen Sie von meiner Maschine. Das ist alles großartig.
Das problem:
Wie Konfiguriere ich das Bild so, dass amazon es dient als öffentlich und mit dem richtigen Content-Type(image/jpeg oder image/png)? Jetzt ist es standardmäßig privat, und (application/octet-stream).
Ist das etwas, was ich konfigurieren kann in Knoten? oder muss ich tun, dass in meinem aws-Konsole?
function sendFileToAmazon(file) {
var s3bucket = new AWS.S3({
params: {Bucket: 'BUCKET NAME'}
});
var params = {Key: file.name, Body: ''};
fs.readFile(file.path, function(err, data) {
if (err) throw err;
params.Body = data;
s3bucket.putObject(params, function(errBucket, dataBucket) {
if (errBucket) {
console.log("Error uploading data: ", errBucket);
} else {
console.log(dataBucket);
deleteFileFromTmp(file);
}
});
});
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies die beste Quelle, um meine Frage zu beantworten, obwohl ich das ursprünglich nicht meine Antwort finden Sie hier:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
Fand ich meine Antwort hier:
http://blog.katworksgames.com/2014/01/26/nodejs-deploying-files-to-aws-s3/
Können Sie einfach hinzufügen:
ContentType: file.mimetype, ACL: 'public-read'
der params, drehen:in
EDIT:
Eher als das liefern der Datei mimetype, könnten Sie, dass nur bestimmte Dateitypen wie zum Beispiel: 'image/jpg', 'image/jpeg', 'image/png', 'image/gif', etc...
{"Key":key, "Body": body, "Metadata": {"Content-Type": "mime/type"} }
file.type