工控软件开发
级别: 正式会员
精华主题: 0
发帖数量: 42 个
工控威望: 89 点
下载积分: 504 分
在线时间: 4(小时)
注册时间: 2023-04-06
最后登录: 2024-06-04
查看工控软件开发的 主题 / 回贴
楼主  发表于: 2023-04-19 09:16
使用GitHub的API实现文件上传--李渣渣(lizaza.cn)
https://www.bbsmax.com/A/RnJWy4lgdq/

复制代码
  1. import requests
  2. import base64
  3. import json
  4. # 读取文件
  5. def open_file(file_path):
  6.      with open(file_path, 'wb+') as f:
  7.          return f.read()
  8. # 将文件转换为base64编码,上传文件必须将文件以base64格式上传
  9. def file_base64(data):
  10.      data_b64 = base64.b64encode(data).decode('utf-8')
  11.      return data_b64
  12. # 上传文件
  13. def upload_file(file_data):
  14.      file_name = ""  #文件名
  15.      token = "[token]"
  16.      url = "https://api.github.com/repos/[user]/[repo]/contents/[path]/"+file_name  # 用户名、库名、路径
  17.      headers = {"Authorization": "token " + token}
  18.      content = file_base64(file_data)
  19.      data = {
  20.          "message": "message",
  21.          "committer": {
  22.              "name": "[user]",
  23.              "email": "user@163.com"
  24.          },
  25.          "content": content
  26.      }
  27.      data = json.dumps(data)
  28.      req = requests.put(url=url, data=data, headers=headers)
  29.      req.encoding = "utf-8"
  30.      re_data = json.loads(req.text)
  31.      print(re_data)
  32.      print(re_data['content']['sha'])
  33.      print("https://cdn.jsdelivr.net/gh/[user]/[repo]/[path]"+file_name)
  34. # 在国内默认的down_url可能会无法访问,因此使用CDN访问
  35. if __name__ == '__main__':
  36.      fdata = open_file('cloud.jpg')
  37.      upload_file(fdata)
我的博客,你可以先看一下我的文章和以前帮别人解决的一些技术问题。
专注VB编程开发20年的博客_CSDN博客-作品成品 开发的一些软件,股票分析理财投资,自动编程 源码库领域博主

https://blog.csdn.net/xiaoyao961