putObject使Nodejs中的服务器上的对象更大

我正在使用Nodejs尝试使用aws-sdk将图像推送到S3实例。 目前,它从客户端上的一个文件读取,然后将其保存在服务器上(我使用的是meteor框架)。我想推送到S3服务器,而不是保存在meteor服务器上。 当我尝试迁移它时,图像似乎在S3上增加了大约30%。 如果我尝试从S3下载它们,图像也不再可见,所以看起来它已经改变了编码或者什么。

这里是在客户端加载文件的代码:

saveFile = function( blob, name, path, type, callback ) { var fileReader = new FileReader(); var method; var encoding = 'binary'; var type = type || 'binary'; switch( type ) { case 'text': method = 'readAsText'; encoding = 'utf8'; break; case 'binary': method = 'readAsBinaryString'; encoding = 'binary'; break; default: method = 'readAsBinaryString'; encoding = 'binary'; break; } // Call the save function on the server after the file has been read. fileReader.onload = function( file ) { console.log( "File loaded..." ); Meteor.call( 'saveFile', file.srcElement.result, name, path, encoding, callback ); } // Read the file fileReader[ method ]( blob ); } 

在服务器端:

  saveFile: function( file, name, path, encoding ) { s3.createBucket({Bucket: bucketName}, function() { var params = {Bucket: bucketName, Key: keyName, ContentType: 'binary', ContentEncoding: 'utf8', Body: file}; s3.putObject(params, function(err, data) { if (err) console.log(err) else console.log("Successfully uploaded data to " + bucketName + "/" + keyName); }); }); 

我想出了解决scheme,它是封装在'文件'对象

 new Buffer() 

简单,但很难find!