当前位置: 首页 > news >正文

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文档


http://www.mrgr.cn/news/2440.html

相关文章:

  • 目标检测 | yolov10 原理和介绍
  • 【ocr识别003】flask+paddleocr+bootstrap搭建OCR文本推理WEB服务
  • java JVM ZGC垃圾收集器关键特性和工作原理
  • 3154. 到达第 K 级台阶的方案数
  • http 请求-04-promise 对象 + async/await 入门介绍
  • 【计算机网络】应用层自定义协议与序列化
  • 工业相机错峰启动优化方案
  • 计算机毕业设计选题推荐-旅游景点数据分析-Python爬虫可视化
  • Keepalived总结笔记
  • 8.20Qt作业
  • SEO之网站结构优化(十二-绝对路径和相对路径)
  • Java 的访问控制修饰符
  • 【区块链+商贸零售】NOCO 企业数字化社区 | FISCO BCOS应用案例
  • 【PB案例学习笔记】-33 PB连接Oracle数据库查询数据
  • 如何运用独特的产业运营体系打造一流的数字媒体产业园
  • 客车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型
  • 指针和引用的区别
  • MySQL常用方法速通
  • python下载b站视频
  • 大数据量实现滚动分页-vue3+element-plus实现方式