Javascript 如何将文件上传到s3fs并获取公共url?
我正在尝试使用nodejs将文件上传到amazons3。我可以上传并创建一个bucket。但是,上载的返回值不包含链接到该文件的url。有人知道如何获取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
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',
或者,可以使用存储桶策略来授予对整个存储桶或子目录的访问权限