常见问题
本文介绍使用 OSS Node.js SDK 的常见问题及解决方法。
如何进行 HTTPS 访问
初始化 SDK 时,只需要指定 secure 的值为 true,则默认进行 HTTPS 访问。
如何获取上传进度
使用分片上传时,可通过progress参数获取上传进度。
如何获取下载进度
Node.js SDK 中可根据下载流的大小来计算进度。
如何上传base64编码的图片
将 base64 内容转换成 File 对象,再调用接口上传至 OSS 服务器。
function dataURLtoFile(dataurl, filename) {
let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
let file = dataURLtoFile('<base64 content>', '');
client.multipartUpload('<oss file name>', file).then( (res)=> {
console.log(res)
}).catch((err) => {
console.log(err)
});
如何上传文件到指定目录
给要上传的 object 名称前加指定目录前缀即可,可参考OSS 和文件系统对比。
let OSS = require('ali-oss')
let client = new OSS({
region: '<Your region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>',
});
client.multipartUpload('base-dir/' +'object-name', 'local-file', {
progress: async function (p) {
console.log('Progress: ' + p);
}
});
console.log(result);
}).then((res) => {
console.log(res)
}). catch((err) => {
console.log(err);
});
如何获取 Object 的签名 URL
可调用 signatureUrl
方法,获取下载地址,可查看 Github 中 signatureUrl部分。
常见错误参考
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论