Я пытаюсь, с сервера, взять изображение из Интернета по его URL-адресу (то есть http://www.skrenta.com/images/stackoverflow.jpg) и сохранить это изображение в моем ковше AWS S3, используя Meteor, aws- sdk, метеоритный пакет, а также пакет http meteor.Метеор: Сохранение изображений из URL-адресов в хранилище AWS S3
Это моя попытка, которая действительно помещает файл в мое ведро (someImageFile.jpg), но файл изображения поврежден и не может быть отображен браузером или программой просмотра.
Возможно, я делаю что-то неправильно с кодировкой файла. Я пробовал много комбинаций, и никто из них не работал. Кроме того, я попытался добавить ContentLength и/или ContentEncoding с различными кодировками, как двоичном, шестнадцатеричном, base64 (также в сочетании с Buffer.toString("base64")
, ни один из них не работал. Любые советы будут с благодарностью!
Это в моей стороне сервера -код:
var url="http://www.skrenta.com/images/stackoverflow.jpg";
HTTP.get(url, function(err, data) {
if (err) {
console.log("Error: " + err);
} else {
//console.log("Result: "+JSON.stringify(data));
//uncommenting above line fills up the console with raw image data
s3.putObject({
ACL:"public-read",
Bucket:"MY_BUCKET",
Key: "someImageFile.jpg",
Body: new Buffer(data.content,"binary"),
ContentType: data.headers["content-type"], // = image/jpeg
//ContentLength: parseInt(data.headers["content-length"]),
//ContentEncoding: "binary"
},
function(err,data){ // CALLBACK OF HTTP GET
if(err){
console.log("S3 Error: "+err);
}else{
console.log("S3 Data: "+JSON.stringify(data));
}
}
);
}
});
на самом деле я пытаюсь использовать filepicker.io REST API с помощью HTTP-вызовов, т.е. для хранения преобразованного изображения в мои s3, но для данной задачи это минимальный пример, чтобы продемонстрировать фактические проблема
Эй FredericoC, спасибо за вход, то эти источники действительно хорошо, но не решают дела. Я обновляю свой пост, чтобы сделать его более понятным, что серверная сторона получает и толкает, никаких клиентов. –