我发现这个问题,但它似乎并没有回答我的问题,因为我认为它仍然在谈论本地文件。有没有办法使用node.js从网址上传到S3?
我想采取,说,和imgur.com链接并上传到S3使用节点。 knox有能力吗?还是我需要使用别的东西?
不确定从哪里开始。
我发现这个问题,但它似乎并没有回答我的问题,因为我认为它仍然在谈论本地文件。有没有办法使用node.js从网址上传到S3?
我想采取,说,和imgur.com链接并上传到S3使用节点。 knox有能力吗?还是我需要使用别的东西?
不确定从哪里开始。
所以你知道知道,但你没有阅读远远低于自述文件看到他们有这个确切的例子吗?
http.get('http://google.com/doodle.png', function(res){
var headers = {
'Content-Length': res.headers['content-length']
, 'Content-Type': res.headers['content-type']
};
client.putStream(res, '/doodle.png', headers, function(err, res){
// Logic
});
});
。我向{encoding: null}
的URL发出请求,以便检索缓冲区中的数据,该数据可以直接传递到s3.putObject()
的Body
参数。以下是将一个远程图像放入桶中的示例,其中aws-sdk和request。
var AWS = require('aws-sdk');
var request = require('request');
AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
function put_from_url(url, bucket, key, callback) {
request({
url: url,
encoding: null
}, function(err, res, body) {
if (err)
return callback(err, res);
s3.putObject({
Bucket: bucket,
Key: key,
ContentType: res.headers['content-type'],
ContentLength: res.headers['content-length'],
Body: body // buffer
}, callback);
})
}
put_from_url('http://a0.awsstatic.com/main/images/logos/aws_logo.png', 'your_bucket', 'media/aws_logo.png', function(err, res) {
if (err)
throw err;
console.log('Uploaded data successfully!');
});
我采取了完全相同的方法。我的图片文件在S3上损坏( –
+1)。我的方法也与此类似,但是我的上传问题已经破坏,但这段代码似乎对我有用。 – minimalpop