oss的node.js怎么分片上传文件到私有bucket里
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
使用Node.js进行分片上传文件到阿里云OSS私有Bucket的步骤如下:
安装ali-oss SDK: 首先,确保已安装阿里云OSS Node.js SDK。如果未安装,可以通过npm进行安装:
npm install ali-oss
初始化OSS客户端: 在您的Node.js应用中,配置并初始化OSS客户端。需要提供AccessKey ID、AccessKey Secret、Bucket名称以及Endpoint。对于私有Bucket,还需确保后续操作具有正确的权限。
const OSS = require('ali-oss');
const client = new OSS({
region: '<YourRegion>', // 如cn-hangzhou
accessKeyId: '<YourAccessKeyId>',
accessKeySecret: '<YourAccessKeySecret>',
bucket: '<YourBucketName>',
});
分片上传文件: 使用multipartUpload
方法进行分片上传。此方法支持断点续传和自定义上传策略,如并发数、分片大小等。
async function uploadFile(filePath) {
try {
// 分片上传
const result = await client.multipartUpload(filePath, 'exampleobject.txt', {
// 可选参数,用于记录上传进度的本地文件路径
checkpoint: 'checkpoint.txt',
// 并发上传的分片个数,默认为5
parallel: 5,
// 指定每个分片的大小,默认为1MB
partSize: 1024 * 1024, // 1MB
});
console.log('Upload success:', result);
} catch (err) {
console.log('Upload error:', err);
}
}
// 调用上传函数,传入文件路径
uploadFile('<YourFilePath>');
错误处理与重试: 在实际应用中,建议添加错误处理逻辑,例如针对网络超时(ConnectionTimeoutError
)的情况,可以实现重试机制或调整分片大小及超时时间。
注意事项:
partSize
和parallel
参数可以优化上传效率。checkpoint
参数开启断点续传功能,可有效应对上传中断的情况。通过上述步骤,您可以利用Node.js SDK成功将文件分片上传至阿里云OSS的私有Bucket中。