我希望能够将图像从URL保存到S3。我已经能够通过使用此代码(docs here)允许用户上传个人资料图片来做类似的事情:
uploadUserImage: function(req, res) {
var userName = req.params.username;
var fname = userName + ".jpg";
var userAvatar = "https://.......;
req.file('image').upload({
adapter: require('skipper-s3'),
key:'xxxxxxxxxxxx',
secret:'xxxxxxxxxx',
region: "xxxxxx",
bucket: 'xxxxxxx',
headers: {
ACL: 'public-read'
},
saveAs: "user-images/"+fname
}, function whenDone(err, uploadedFiles) {
无论如何,我可以修改此代码,以便保存来自URL /链接的图像吗?
我一直在努力做这样的事情,但我无法弄清楚它是如何起作用的。
var request = require('request');
function(person, next) {
request({
url:person.image,
encoding:null
}, function(err, res, reqBody) {
if (err) {
console.log(err);
} else {
console.log(reqBody);
console.log(res);
}
reqBody.upload({
adapter: require('skipper-s3'),
key:'xxxxxxxxxxxx',
secret:'xxxxxxxxxx',
region: "xxxxxx",
bucket: 'xxxxxxx',
headers: {
ACL: 'public-read'
},
saveAs: "user-images/"+person.id+".jpeg"
}, function whenDone(err, uploadedFiles) {
if(err) {
return next(err);
} else {
person.image = "https:........";
return next(null, person);
}
});
});
},
答案 0 :(得分:2)
不可能。您必须自己下载文件,然后上传。
只有一种方法可以说服S3为您提取文件并将其写入您的存储桶,这就是S3中的文件已经的时候。 S3可以通过从...本身获取来复制文件。但是不会代表您取代http...
。