Ich versuche, ein Bild-Uploader mit Meteor zu Amazon S3 zu bauen. Dank Hubert OG habe ich AWS-SDK gefunden, was die Sache einfach macht.Wie Bilder von FileReader auf Amazon s3 hochgeladen werden, mit Meteor
Mein Problem ist, dass die hochgeladenen Daten beschädigt zu sein scheinen. Wenn ich die Datei herunterlade, heißt es, die Datei könnte beschädigt sein. Wahrscheinlich ist es.
Einfügen der Daten in ein Bild src, funktioniert, und die Vorschau des Bildes zeigt sich so, wie es soll, so dass die ursprüngliche Datei und wahrscheinlich die Daten korrekt sind.
Ich lade die Datei mit FileReader, und dann übergeben Sie die Ergebnisdaten AWS-SDK PutObject-Methode.
var file=template.find('[type=file]').files[0];
var key="uploads/"+file.name;
var reader=new FileReader();
reader.onload=function(event){
var data=event.target.result;
template.find('img').src=data;
Meteor.call("upload_to_s3",file,"uploads",reader.result);
};
reader.readAsDataURL(file);
und dies ist die Methode auf dem Server:
"upload_to_s3":function(file,folder,data){
s3 = new AWS.S3({endpoint:ep});
s3.putObject(
{
Bucket: "myportfoliositebucket",
ACL:'public-read',
Key: folder+"/"+file.name,
ContentType: file.type,
Body:data
},
function(err, data) {
if(err){
console.log('upload error:',err);
}else{
console.log('upload was succesfull',data);
}
}
);
}
konnten Sie ein Dateiobjekt an die Meteormethode übergeben? Ich werde undefiniert. – Ankita