有一个非常好的示例可用于通过 aws-sdk-js 库将大文件上传到 s3,但不幸的是,这是使用 nodeJs fs。
有没有办法我们可以在纯 Javascript 中实现同样的事情?这是一个很好的要点,它将大文件分解为较小的块,但是这仍然缺少传递给 asw-sdk-js 上传功能所需的 nodeJs fs 的 .pipe 功能。这是 Node.js 中的相关代码片段。
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('Progress:', evt.loaded, '/', evt.total);
}).
send(function(err, data) { console.log(err, data) });
Plain JS(非nodeJs)中是否有类似的东西?可用于 Rails。
具体来说,是 Plain JS 中以下行的替代方案。
var body = fs.createReadStream('bigfile').pipe(zlib.createGzip());