bbl*_*ack 12 amazon-s3 node.js
S3的node.js API为回调中返回的数据提供了以下描述getObject.来自http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property:
Body - (Buffer,Typed Array,Blob,String,ReadableStream)对象数据.
这是真的吗?有没有办法控制这些东西是哪一种?
Bru*_*uce 12
我不知道你是否可以提前控制getObject()回调中提供的data.Body字段的类型.如果您只想确定是否收到了缓冲区,则可以尝试Node的Buffer.isBuffer(data.Body)类方法.
或者,您可能希望完全避免该问题,并使用Amazon S3文档中的此方法:
var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');
s3.getObject(params).createReadStream().pipe(file);
Run Code Online (Sandbox Code Playgroud)
假设您将在典型的node.js异步回调环境中使用此代码,那么查看代码可能更有意义:
var fs = require('fs');
function downloadFile(key, localPath, callback) {
var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: key};
var file = fs.createWriteStream(localPath);
file.on('close') {
callback();
}
file.on('error', function(err) {
callback(err);
});
s3.getObject(params).createReadStream().pipe(file);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7136 次 |
| 最近记录: |