Javascript 如何将文件上传到s3fs并获取公共url?

Javascript 如何将文件上传到s3fs并获取公共url?,javascript,node.js,amazon-s3,Javascript,Node.js,Amazon S3,我正在尝试使用nodejs将文件上传到amazons3。我可以上传并创建一个bucket。但是,上载的返回值不包含链接到该文件的url。有人知道如何获取url吗?以及如何公开该文件,以便我可以访问它,因为我正在尝试将图像上载到我的网站 var multer = require('multer'); var AWS= require('aws-sdk'); var fs = require('fs'); var S3FS = require('s3fs'); var s3fsImpl = n

我正在尝试使用nodejs将文件上传到amazons3。我可以上传并创建一个bucket。但是,上载的返回值不包含链接到该文件的url。有人知道如何获取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');
});

如果您使用的是JavaScript/Node,那么应该使用官方的AWS SDK,而不是S3FS

例如:

使用该函数时,有一个
ACL
参数指定对象是否应为公共对象:

ACL: 'private | public-read | public-read-write | authenticated-read | aws-exec-read | bucket-owner-read | bucket-owner-full-control',
或者,可以使用存储桶策略来授予对整个存储桶或子目录的访问权限