npm install ali-oss fs-extra
创建uploadToOSS.js,内容如下 ,执行node uploadToOSS.js
const fs = require('fs-extra');
const OSS = require('ali-oss');
const client = new OSS({
region: 'oss-cn-shenzhen',
accessKeyId: '',
accessKeySecret: '',
bucket: '',
secure: true
});
const localDirectory = 'D:/vue-product/ceshi-vue3/dist';
const ossDirectory = 'upload/ceshi-dist';
const deleteEntireOSSDirectory = async (directory) => {
// 列出Bucket下所有文件
try {
const result = await client.list({
prefix: directory+'/', // 替换为你要删除的目录
});
const objects = result.objects.map(obj => ({
key: obj.name,
}));
// 批量删除文件
if (objects.length) {
await client.deleteMulti(objects);
}
} catch (e) {
console.error('Error:', e);
}
};
const uploadFilesToOSS = async (localDir, ossDir) => {
const files = fs.readdirSync(localDir);
for (const file of files) {
const filePath = `${localDir}/${file}`;
const stats = fs.statSync(filePath);
if (stats.isFile()) {
await client.put(`${ossDir}/${file}`, filePath);
console.log(`Uploaded file: ${file}`);
} else if (stats.isDirectory()) {
await uploadFilesToOSS(filePath, `${ossDir}/${file}`);
}
}
};
const run = async () => {
try {
await deleteEntireOSSDirectory(ossDirectory);
await uploadFilesToOSS(localDirectory, ossDirectory);
console.log('All files uploaded to OSS successfully.');
} catch (error) {
console.error('Error:', error);
}
};
run();
正文完