使用NodeJS和S3FS /多方将file upload到Amazon S3
我使用多方和S3FS上传文件到amazon s3,当写入一个文件streams3它创build临时文件path与桶path,例如:
var S3FS = require('s3fs'); var s3fsImpl = new S3FS('my-bucket/files',{ accessKeyId: config.amazonS3.accessKeyId, secretAccessKey: config.amazonS3.secretAccessKey }); module.exports = function (app) { app.post('/upload', function (req, resp) { // get the file location var file = req.files.file; var stream = fs.createReadStream(file.path); return s3fsImpl.writeFile(fileName,stream).then(function(){ fs.unlink(file.path,function(err){ if(err) console.error(err); }); resp.send('done'); }).catch(function (err) { return resp.status(500).send({ message: errorHandler.getErrorMessage(err) }); }); }); };
这个文件应该写在s3的path中:
我的桶/文件
而现在它正在写在amazon s3桶中的临时文件path:
my-bucket/files/home/ubuntu/www/html/sampleProject/public/files
任何想法为什么临时文件path'home/ubuntu/www/html/sampleProject/public/files'
在写入文件时在s3存储桶中创build?
我自己find了解决scheme,我发送的文件名写入文件是错误的,我只取代\
与/
从临时path获取文件名。
var filePath= 'home\ubuntu\www\html\sampleProject\public\files\myfile.jpg'.replace(/\\/g, '/'); var fileName = filePath.substr(filePath.lastIndexOf('/')+1,filePath.length-1)
- 简单的WebApp – 通过HTML / AWS Javascript SDK将file upload到S3
- Amazon S3中的节点file upload错误
- 将私钥存储在静态的Angular站点上
- 基于Cognito ID的S3文件夹访问的IAM策略
- 使用aws-sdk和Node / Express将简单的file upload到S3
- Ruby / node.js + Amazon SES:是否有Amazon SES API?
- 使用Cloudformation来部署Lamba,包括函数将有权访问的参数
- 关于在AWS NodeJS上使用TypeScript (获取TS的堆栈跟踪而不是JS)
- DynamoDB putitem在NodeJs中 – 对象数组