本文档介绍如何进行流式上传。
说明 以下示例代码中的 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();