2013-05-28 68 views

回答

1

所以你知道知道,但你没有阅读远远低于自述文件看到他们有这个确切的例子吗?

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 
    }); 
}); 
8
我不使用 knox但官方 AWS SDK for JavaScript in Node.js

。我向{encoding: null}的URL发出请求,以便检索缓冲区中的数据,该数据可以直接传递到s3.putObject()Body参数。以下是将一个远程图像放入桶中的示例,其中aws-sdkrequest

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!'); 
}); 
+1

我采取了完全相同的方法。我的图片文件在S3上损坏( –

+0

+1)。我的方法也与此类似,但是我的上传问题已经破坏,但这段代码似乎对我有用。 – minimalpop

相关问题