2013-05-28 3 views
2

나는이 질문을 발견했다. 그러나 아직도 로컬 파일에 대해 이야기하고 있다고 생각할 때 나의 질문에 대답하는 것처럼 보이지 않는다.node.js를 사용하여 URL에서 S3에 업로드하는 방법이 있습니까?

노드를 사용하여 S3에 링크 및 imgur.com 링크를 업로드하고 업로드하고 싶습니다. knox이 가능합니까? 아니면 다른 것을 사용해야합니까?

어디서부터 시작해야할지 모르겠습니다.

답변

1

알고 계시 겠지만 README 파일을 충분히 읽지 않았기 때문에 거기에이 예제가 있다는 것을 알 수 있습니까? 내가 knox하지만 공식 AWS SDK for JavaScript in Node.js 사용하지 않는

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

. 에 대한 Body 매개 변수로 직접 전달할 수있는 버퍼의 데이터를 검색하기 위해 {encoding: null}이라는 URL에 요청을 보냅니다. 다음은 원격 이미지를 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

관련 문제