npm install ali-oss
yarn add ali-oss
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证
// 当然,以下两个也可以直接写死
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 填写Bucket名称。
bucket: 'examplebucket'
});
常用的就这么四个参数,如果你要更多,可以看文档
上面的参数如果不知道,问运维或者后端就行,一般是他们去处理,咱不干这破事。
接下来就是哪里用到,哪里引入就行。你的文件路径肯定跟我的不一样,别乱来啊,兄弟!
import { client } from "@/utils/alioss.js";
<el-upload
class="avatar-uploader"
:on-preview="handlePictureCardPreview"
:action="''"
:http-request="UploadFileFn"
:on-success="handleSuccess"
:on-error="handleError"
:on-change="fileChange"
:accept="'.img,.png,.jpg,.jpeg'"
:data="uploadImgData"
multiple
>
</el-upload>
UploadFileFn(file) {
// 定义文件名 用时间戳,保证唯一性
let fileName = 'demo' + `${Date.parse(new Date())}`+'.jpg';
client()
.multipartUpload(fileName, file.file).then((res) => {
// 这里会返回信息
// 如果返回了地址,而且能在浏览器打开看到文件就是ok了
console.log(res)
// 做你想做的事情,比如页面回显
// 或者获取其他信息,名字等等
this.imageUrl = res.url;
})
}
UploadFilePublic(file, type, suffix) {
// type用来判断 是图片还是视频
// suffix是后缀名
let fileName = "adver" + `${Date.parse(new Date())}` + suffix;
let client = new OSS({
region: "oss-cn-xxx",
accessKeyId: "xxx",
accessKeySecret: "xxx",
bucket: "xxx",
});
try {
// 上传文件到指定文件夹
const result = client.put("material/" + fileName, file.file);
result.then((res, cal) => {
console.log(res);
this.$message.success("上传成功");
// 这里是获取一些参数,顺便提供案例
// 不要的去掉即可
let obj = {
// fileDuration: 0,
fileName: fileName,
filePath: res.url,
fileSize: file.file.size,
// 后缀名
fileSuffix: res.name.match(/.[^.]+$/)[0],
fileSignature: type == 'img' ? this.imgMd5 : this.videoMd5
};
// 图片上传
if (type == "img") {
// 做你想做的其他事情
this.imageUrl = res.url;
}
// 视频上传
if (type == "video") {
// 做你想做的其他事情
this.videoUrl = res.url;
}
});
} catch (e) {
console.error("上传失败:", e);
}
},
const result = client.put("material/" + fileName, file.file);
感谢大家的支持,最近尽量多更新一点,也希望大家能鼓励鼓励!
1. 希望本文能对大家有所帮助,如有错误,敬请指出
2. 原创不易,还请各位客官动动发财的小手支持一波(关注、评论、点赞、收藏)
3. 拜谢各位!后续将继续奉献优质好文
4. 如果存在疑问,可以私信我(主页有Q)