流式上传
本文档介绍如何进行流式上传。
说明 以下示例代码中的 catch 语法,请自行学习 es6 promise、async/await。 SDK 的使用方式,请参考安装。
通过putStream接口来上传一个Stream中的内容。stream参数可以是任何实现了Readable Stream的对象,包含文件流,网络流等。当使用putStream接口时,SDK 默认会发起一个chunked encoding的 HTTP PUT 请求。如果在options指定了contentLength参数,则不会使用chunked encoding。
let OSS = require('ali-oss');
let fs = require('fs');
let client = new OSS({
region: '<Your region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>',
});
async function putStream () {
try {
// use 'chunked encoding'
let stream = fs.createReadStream('local-file');
let result = await client.putStream('object-name', stream);
console.log(result);
// don't use 'chunked encoding'
let stream = fs.createReadStream('local-file');
let size = fs.statSync('local-file').size;
let result = await client.putStream(
'object-name', stream, {contentLength: size});
console.log(result);
} catch (e) {
console.log(e)
}
}
putStream();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论