nodejs操作gitee图床上传更新和删除
新建文件夹
使用vscode打开当前文件夹
初始化项目
npm init-y
安装axios
npm install axios
根目录下放个图片文件,如aaa.png
在根目录下创建app.js文件
输入以下内容
console.log(11111)
运行项目
node ./app.js
终端只要打印出111就代表项目创建完成了
创建token令牌
点击查看这篇文章创建令牌方法即可
新建仓库,一定要是开源的(仓库路径格式)
如创建仓库填写,名称如foodSpeedOrderImg,但是路径自动转换为了food-speed-order-img,切记,后续只要是需要填写仓库路径的都要选择food-speed-order-img
上传图片
const axios = require("axios");
const fs = require("fs");const giteeToken = "XXXXXX"; // 替换成你的Gitee Token
const owner = "XXXXXX"; // 替换成你的Gitee用户名(仓库个人主页姓名下面的@后面的值)
const repo = "XXXX"; // 替换成你的Gitee仓库路径(创建仓库时的path,驼峰命名的话为全小写,中间用短横线连接)
const path = "web/hahaha6.png"; // 替换成你想要保存图片的路径和文件名
const message = "提交信息"; // 你想要的提交信息const url = `https://gitee.com/api/v5/repos/${owner}/${repo}/contents/${path}`;const content = fs.readFileSync("./aaa.png", { encoding: "base64" }); // 读取本地图片文件const config = {headers: {"Content-Type": "application/json","User-Agent": "Node.js",Authorization: `token ${giteeToken}`,},
};const getData = async () => {const data = {access_token: giteeToken,content: content,branch: "master",message: message};axios.post(url, data, config).then((response) => {console.log("图片上传成功:", response.data);}).catch((error) => {console.error("图片上传失败:",error.response ? error.response.data : error);});console.log('data',data);
};getData();
更新图片(路径不变,图片更新掉)
const axios = require("axios");
const fs = require("fs");const giteeToken = "XXXXXX"; // 替换成你的Gitee Token
const owner = "XXXXXXXX"; // 替换成你的Gitee用户名(仓库个人主页姓名下面的@后面的值)
const repo = "XXXX"; // 替换成你的Gitee仓库路径(创建仓库时的path,驼峰命名的话为全小写,中间用短横线连接)
const path = "hahaha.png"; // 替换成你想要更新图片的路径和文件名(要跟被替换的图片文件名保持一致)
const message = "提交信息"; // 你想要的提交信息const url = `https://gitee.com/api/v5/repos/${owner}/${repo}/contents/${path}`;const content = fs.readFileSync("./qqqq.jpg", { encoding: "base64" }); // 读取本地图片文件const config = {headers: {"Content-Type": "application/json","User-Agent": "Node.js",Authorization: `token ${giteeToken}`,},
};const getData = async () => {// 提取前端传入的链接https://gitee.com/xiaojisengren/food-speed-order-img/raw/master/hahaha4.png// 找到里面的用户名,仓库名和文件路径,并将其改成url基础路径格式进行匹配let res = await axios.get("https://gitee.com/api/v5/repos/xiaojisengren/food-speed-order-img/contents/hahaha4.png");// content为base64格式图片const data = {access_token: giteeToken,content: content,message: message,sha: res.data.sha,};// 将指定sha值的文件替换为上传的图片// 更新图片axios.put(url, data, config).then((response) => {console.log("图片更新成功:", response.data);}).catch((error) => {console.error("图片更新失败:",error.response ? error.response.data : error);});console.log("data", data);
};getData();
删除图片
const axios = require("axios");
const fs = require("fs");const giteeToken = "XXXXXX"; // 替换成你的Gitee Token
const owner = "XXXXX"; // // 替换成你的Gitee用户名(仓库个人主页姓名下面的@后面的值)
const repo = "XXXXXXXX"; // 替换成你的Gitee仓库路径(创建仓库时的path,驼峰命名的话为全小写,中间用短横线连接)
const path = "hahaha4.png"; // 替换成你想要保存图片的路径和文件名
const message = "提交信息"; // 你想要的提交信息// 基础url地址
const url = `https://gitee.com/api/v5/repos/${owner}/${repo}/contents/${path}`;// 请求头信息
const config = {headers: {"Content-Type": "application/json","User-Agent": "Node.js",Authorization: `token ${giteeToken}`,},
};const getData = async () => {// 提取前端传入的链接https://gitee.com/xiaojisengren/food-speed-order-img/raw/master/hahaha4.png// 找到里面的用户名,仓库名和文件路径,并将其改成url基础路径格式进行匹配// 用于获取被删除文件的sha// 有了sha值,就可以删除图片了,相当于唯一的id值let res = await axios.get("https://gitee.com/api/v5/repos/xiaojisengren/food-speed-order-img/contents/hahaha4.png");// 传递参数token,提交信息,sha值const data = {access_token: giteeToken,message: message,sha: res.data.sha,};// 将指定sha值的文件替换为删除的图片// 删除图片axios.delete(url, {headers: config.headers,params: data,}).then((response) => {console.log("图片删除成功:", response.data);}).catch((error) => {console.error("图片删除失败:",error.response ? error.response.data : error);});
};getData();
gitee的Api文档
