S3文件上传文件对象使用节点js
S3 file upload file object using node js
我使用的是Sailsjs 0.12.1,node.js 4.2.6
我想通过API从前端上传文件(angular.js),从后端上传文件到AWS S3存储桶。
前端我正在将文件发送到api。在后台,我得到了带有名称的文件,但在将文件上传到S3时,我收到了错误
无法确定[对象对象]的长度
我在谷歌上搜索了这个错误,发现了很多链接,但我运气不好。
后端
uploadPersonAvtar: function(req, res) {
var zlib = require('zlib');
var file = req.file('image');
var mime = require('mime');
data = {
Bucket: 'bucket',
Key : 'my_key',
Key: file.name,
Body: file,
ContentType: mime.lookup(file.name)
};
// Upload the stream
var s3obj = new AWS.S3(S3options);
s3obj.upload(data, function(err, data) {
if (err) console.log("An error occurred", err);
console.log("Uploaded the file at", data);
})
}
我的方法正确吗
如果是的话,我做错了什么。
我想知道如何使用文件对象上传文件
我可以创建一个读取流,但我没有文件路径。当我创建文件对象时,我得到了错误:路径必须是字符串
您可以查看以下关于流式数据的示例:Amazon S3:上传任意大小的流(上传)
var fs = require('fs');
var zlib = require('zlib');
var body = fs.createReadStream('bigfile').pipe(zlib.createGzip());
var s3obj = new AWS.S3({params: {Bucket: 'myBucket', Key: 'myKey'}});
s3obj.upload({Body: body}).
on('httpUploadProgress', function(evt) { console.log(evt); }).
send(function(err, data) { console.log(err, data) });
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从nginx访问节点文件
- 如何引用HTML中节点模块中的js文件
- S3文件上传文件对象使用节点js
- 在节点中创建文件全局变量
- gcloud节点-我如何确保通过签名URL上传到谷歌云存储的文件是公开可读的
- 文件的节点自动化移动到另一个文件夹中
- 节点:'最佳实践'使用其他js文件的js文件
- 仅首先需要使用jasmine从节点添加一个文件
- 节点如何将文件传递到http.write方法
- 正在读取节点中的配置文件
- 节点static不能为当前文件夹之上的文件夹提供服务
- 是javascript(用于节点)中用于忽略文件的任何微小库
- 需要来自单个JS文件的多个子模块与节点/组件.js
- 节点.js 使用可写流写入文件时出现 EBADF 错误
- 节点.js将文件从多个目录复制到一个目录
- 如何在 JStree 3 中显示叶节点的类似文件的图标
- 节点 - 将 JSON 文件加载到代码中
- REST路由多个文件节点js
- 删除包含文件节点js的文件夹