2017-03-07 7 views
2

nodejs를 사용하여 amazon s3에 파일을 업로드하려고합니다. 업로드하고 버킷을 만들 수있었습니다. 그러나 업로드의 반환 값에는 해당 파일에 링크 된 URL이 포함되어 있지 않습니다. 누구든지 URL을 얻는 방법을 알고 있습니까? 난 당신이 자바 스크립트/노드를 사용하는 경우, 당신은 공식 AWS SDK보다는 S3FS를 사용해야합니다s3fs에 파일을 업로드하고 공용 URL을 얻는 방법은 무엇입니까?

var multer = require('multer'); 
var AWS= require('aws-sdk'); 

var fs = require('fs'); 

var S3FS = require('s3fs'); 

var s3fsImpl = new S3FS('bucketName',{ 
    accessKeyId:'************', 
    secretAccessKey:'***************' 
}); 

s3fsImpl.create(); 

var multiparty = require('connect-multiparty'), 
    multipartyMiddleware = multiparty(); 

router.use(multipartyMiddleware); 


router.post('/upload',function(req,res){ 

    console.log(JSON.stringify(req.files)); 
    var file = req.files; 
    var stream = fs.createReadStream(file.fileUpload.path); 
    return s3fsImpl.writeFile(file.fileUpload.originalFilename, stream, 'public-read').then(function(data){ 
     fs.unlink(file.fileUpload.path, function(err){ 
      console.error(err); 
     }) 
    }); 
    res.send('Sucessfully uploaded to Amazon S3 server'); 
}); 

답변

0

내 웹 사이트에 이미지를 업로드하려고 때문에 파일을 공개하는 방법을 나는 그것을 액세스 할 수 있습니다.

: putObject() function

그 함수를 사용하여, ACL 오브젝트가 공개 여부를 지정 변수가있다 : 대안

ACL: 'private | public-read | public-read-write | authenticated-read | aws-exec-read | bucket-owner-read | bucket-owner-full-control', 

하는 버킷 정책 부여하는데 사용될 수있다 전체 버킷이나 하위 디렉토리에 대한 액세스.