A pipeable write stream which uploads to Aliyun OSS using the multipart file upload API.
Fork from s3-upload-stream.
阿里云官方的Node.js SDK aliyun-sdk 不支持stream
方式上传文件到OSS.
所以我尝试修改了s3-upload-stream, 然后移植在aliyun-sdk上.
项目取名oss-upload-stream
, 并发布到npm
上.
样例代码请参考examples/upload.js
#!/usr/bin/env node
var ALY = require('aliyun-sdk'),
fs = require('fs');
// Make sure Aliyun credentials are loaded.
var config = require('./config.json');
// Initialize a stream client.
var ossStream = require('../lib/oss-upload-stream.js')(new ALY.OSS(config));
// Create the streams
var read = fs.createReadStream('文件路径');
var upload = ossStream.upload({
"Bucket": "你的bucket",
"Key": '文件名称'
});
// Handle errors.
upload.on('error', function (error) {
console.log(error);
});
// Handle progress.
upload.on('part', function (details) {
console.log(details);
});
// Handle upload completion.
upload.on('uploaded', function (details) {
var delta = (new Date() - startTime) / 1000;
console.log(details);
console.log('Completed upload in', delta, 'seconds');
});
// Pipe the incoming filestream and upload to Aliyun OSS.
read.pipe(upload);
var startTime = new Date();
npm install oss-upload-stream
npm test
本项目和aliyun-oss-upload-stream的区别.
aliyun-oss-upload-stream
是从本项目fork出去的,增加了中文注释,然后改头换面,隐藏了出处.
我个人认为开源项目应该保持fork的属性,并且指明出处.