umi,umi-plugin,alioss
基于 umi2.x 插件体系编写
基于umi-plugin
系统封装的一个插件,用于构建成功之后上传静态资源到阿里云
yarn add umi-plugin-alioss -D
yarn add ali-oss -D
在.umirc.js
或者config/config.js
中使用
const ossPluginOpt = {
ossConfig: {
region: 'oss-cn-beijing',
bucket: 'example',
secure: true,
},
configName: '.alioss',
enabled: true,
cdnPrefix: 'https://cdn.xxx.com/release/', // CDN前缀
uploadPath: '/release', // 文件上传路径
exclude: '', // 排除文件
ignoreHtml: true, // 不上传html
};
export default {
plugins: [['umi-plugin-alioss', ossPluginOpt]],
};
为了安全起见,alioss
上传是需要accessKeyId
,accessKeySecret
的
我们在使用之前需要先到系统用户目录下新建.alioss
文件,内容如下
accessKeyId=1231231231231
accessKeySecret=12312312312313
比如mac
用户在/User/xxx/.alioss
windows
用户在C:/User/admin/.alioss
注意:在服务器环境中需要给该文件设置读取权限比如:chmod 600 .alioss
为了兼容umi3.x
代码有些许改动
在umi3.x
中的插件配置和2.x有一些不同,上诉的配置方法不适用,在3.x中可以:
// config文件
import { defineConfig } from 'umi';
export default defineConfig({
hash: true,
antd: {
dark: true,
},
dva: {
hmr: true,
},
...,
alioss: {
ossConfig: {
buildPath: 'dist/**',
...,
},
uploadPath: '/',
},
});
The request signature we calculated does not match the signature you provided. Check your key and signing method.
可以参考这里 (貌似是要翻Q)
The OSS Access Key Id you provided does not exist in our records
检查上述的.alioss
,文件中accessKeySecret=
和accessKeyId=
后的值不要加上''
""
或者其他符号