2017-03-07 14 views
2

nodejsを使用してamazon s3にファイルをアップロードしようとしています。アップロードしてバケットを作成することができました。ただし、アップロードの戻り値には、そのファイルにリンクしているURLは含まれていません。誰がどのようにURLを取得知っていますか?私はあなたのJavaScript /ノードを使用している場合は、公式の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', 

バケットポリシーを付与するために使用することができますバケットまたはサブディレクトリ全体へのアクセス。

関連する問題