@shencom/oss-upload
Version:
code upload to oss
56 lines (46 loc) • 1.78 kB
text/typescript
import { homedir } from 'os';
import fs from 'fs-extra';
import dotenv from 'dotenv';
import chalk from 'chalk';
import log from '@shencom/npmlog';
import boxen from 'boxen';
import { CheckEnvPath } from './utils';
const PROJECT_ENV_PATH = `${process.cwd()}/.env.oss.local`;
const USER_HOME_SHENCOM = `${homedir()}/.shencom/oss_key`;
function ParseEnv(envPath: string) {
const path = CheckEnvPath(envPath);
if (!path) {
log.error('oss', '未找到对应的秘钥配置文件,请先配置秘钥');
TipLog();
process.exit();
}
const secret = dotenv.parse(fs.readFileSync(path));
return secret;
}
function TipLog() {
console.info(
boxen(
`1. 可以使用 ${chalk.magenta.bold('@shencom/cli')} 创建秘钥${chalk.red.bold('(推荐)')}\n\n` +
`${chalk.gray('全局配置: ')}${chalk.gray.bold('$ npx @shencom/cli oss config')}\n\n` +
`${chalk.gray('项目配置: ')}${chalk.gray.bold('$ npx @shencom/cli oss config -p')}\n\n` +
`2. 在当前项目根目录创建 ${chalk.blue.bold('.env.oss.local')} 文件,并配置如下内容:\n\n` +
`${chalk.gray('accessKeySecret=xxx')}\n${chalk.gray('accessKeyId=xxx')}\n\n` +
`${chalk.red.bold('注意:')} 请勿把 ${chalk.blue.bold(
'.env.oss.local',
)} 文件提交到代码仓库中`,
{
padding: 1,
margin: 1,
title: '可以使用以下两种方式配置秘钥',
borderColor: 'yellow',
borderStyle: 'round',
},
),
);
}
function ParseAccessKeyEnv() {
const envPath = CheckEnvPath(PROJECT_ENV_PATH) || CheckEnvPath(USER_HOME_SHENCOM);
const { accessKeyId, accessKeySecret } = ParseEnv(envPath);
return { accessKeyId, accessKeySecret };
}
export { ParseAccessKeyEnv, TipLog };