const OSS = require('ali-oss');
const client = new OSS({
'region': '<Your region>',
'accessKeyId': '<Your AccessKeyId>',
'accessKeySecret': '<Your AccessKeySecret>',
'bucket': 'bobo-wjc',
});
const request = require('request');
const path = require('path');
const fs = require('fs');
(async () => {
// 创建一个可写流
let name = `${new Date().getTime()}.mp4`;
let file = path.resolve(__dirname, `./${name}`);
try {
// 需要下载的视频路径
let url = 'https://s3.meituan.net/v1/mss_44977afbb0cb409db8736441cf62a2d1/video/e00f83214e1ebb4df2226cbdf2ea59d3.mp4';
let writeStream = fs.createWriteStream(file); // 创建可写流
let ok = 1;
await new Promise((resolve, reject) => {
request(url)
.on('response', function(response) {
if (response.statusCode !== 200) {
ok = -1;
return resolve(0);
}
})
.on('end', function() {
})
.on('error', function(err) {
ok = -1;
return resolve(0);
})
.on('data', chunk => {
})
.on('finish', function() {
writeStream.end();
})
.pipe(writeStream);
writeStream.on('finish', function() {
if (ok === -1) {
fs.unlinkSync(file);
}
return resolve(1);
});
});
console.log('下载成功======>', file);
// 分片上传
// /test/test.png 上传到云上的路径
let result = await client.multipartUpload('/test/test.png', file, {
'progress': async function(p) {
console.log(p);
},
'meta': {
'year': 2017,
'people': 'test',
},
});
console.log(result);
// 使用对应的bucket 的域名拼接 result.name
// 删除本地文件
// 删除文件
fs.unlinkSync(file);
} catch (error) {
fs.unlinkSync(file);
console.log('error============>', error);
return '';
}
})();
nodejs 下载视频 通过分片上传到ali-oss
最新推荐文章于 2023-02-24 08:52:38 发布