金山云KS3 有关外链上传的总结

246 阅读1分钟

因浏览器只支持header添加签名信息,故该方式不支持在web使用,但可以在服务端使用,以nodejs-SDK为例如下所示:

function uploadByUrl () {
    // 先通过sdk获取上传链接, 然后再通过put方式上传
    const body = fs.createReadStream(filePath)
    const stat = fs.statSync(filePath)
    client.object.generatePresignedUrl({
        Bucket: bucketName,
        Key: 'url-upload.mp4', // 保存到ks3的名字
        expiration: 5 * 60, // 外链有效时长
        method: 'put' // 外链上传只能是put方式
    }, function (res, data) {
        console.log('url: ', data)
        // 以下为具体的上传,可自行实现。注意事项:1、必须为put方式,2、content-length必传
        request({
            method: 'put',
            uri: data,
            headers: {
                'Content-Length': stat.size
            }
        }, body, '', cb);
    })
}
uploadByUrl();