我正在尝试使用nodejs将文件上传到amazon s3。我能够上传,并创建一个桶。但是,上载的返回值不包含链接到该文件的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 :(得分:0)
如果您使用的是JavaScript / Node,则应使用官方AWS开发工具包而不是S3FS。
使用该函数时,有一个app.__version__
参数指定对象是否应公开:
ACL
或者,可以使用 Bucket Policy 授予对整个存储桶或子目录的访问权限。