需求:
对于项目打包后,部署阿里云过程中操作的步骤多的问题。
编写了一个基于nodejs与alioss node sdk的一个上传脚本文件。
基于node实现本地文件部署阿里云OSS
实现步骤
-
安装node
-
安装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); } }
|
- 整体流程
配置aliOSS参数,配置需要上传的文件夹,部署的aliOSS文件夹。
获取上传文件夹下的所有文件,调用上传接口
获取文件列表,使用node.js的fs api
1
| fs.readdirSync('./dist') // 获取dist目录下的文件和文件夹
|
因sdk限制,api不能上传文件夹,所以需要对文件做判断是否是文件,是则就调用上传接口,不是则再次进行遍历并判断
1
| fs.statSync(path.join(name, item)).isFile()
|
附源码