banner
NEWS LETTER

基于node实现本地文件部署阿里云OSS

Scroll down

需求:
对于项目打包后,部署阿里云过程中操作的步骤多的问题。
编写了一个基于nodejs与alioss node sdk的一个上传脚本文件。

基于node实现本地文件部署阿里云OSS

实现步骤

  1. 安装node

  2. 安装alioss node.js sdk 安装node.js sdk 文档

环境准备完毕

上传文件,我使用了 node.js sdk 中的上传本地文件 上传本地文件 文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const OSS = require('ali-oss')

const client = new OSS({
bucket: '<Your BucketName>',
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
});

async function put () {
try {
//object-name可以自定义为文件名(例如file.txt)或目录(例如abc/test/file.txt)的形式,实现将文件上传至当前Bucket或Bucket下的指定目录。
let result = await client.put('object-name', 'local-file');
console.log(result);
} catch (e) {
console.log(e);
}
}
  1. 整体流程

配置aliOSS参数,配置需要上传的文件夹,部署的aliOSS文件夹。

获取上传文件夹下的所有文件,调用上传接口

获取文件列表,使用node.js的fs api

1
fs.readdirSync('./dist') // 获取dist目录下的文件和文件夹

因sdk限制,api不能上传文件夹,所以需要对文件做判断是否是文件,是则就调用上传接口,不是则再次进行遍历并判断

1
fs.statSync(path.join(name, item)).isFile()

附源码

其他文章