nodejs操作gitee图床上传更新和删除
新建文件夹
使用vscode打开当前文件夹
初始化项目
js
npm init-y
安装axios
js
npm install axios
根目录下放个图片文件,如aaa.png
在根目录下创建app.js
文件
输入以下内容
js
console.log(11111)
运行项目
js
node ./app.js
终端只要打印出111就代表项目创建完成了
创建token令牌
新建仓库,一定要是开源的(仓库路径格式)
如创建仓库填写,名称如foodSpeedOrderImg
,但是路径自动转换为了food-speed-order-img
,切记,后续只要是需要填写仓库路径的都要选择food-speed-order-img
上传图片
js
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();
更新图片(路径不变,图片更新掉)
js
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();
删除图片
js
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();