工控軟件開(kāi)發(fā)
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 42 個(gè)
工控威望: 89 點(diǎn)
下載積分: 504 分
在線時(shí)間: 4(小時(shí))
注冊(cè)時(shí)間: 2023-04-06
最后登錄: 2024-06-04
查看工控軟件開(kāi)發(fā)的 主題 / 回貼
樓主  發(fā)表于: 2023-04-19 09:16
使用GitHub的API實(shí)現(xiàn)文件上傳--李渣渣(lizaza.cn)
https://www.bbsmax.com/A/RnJWy4lgdq/

復(fù)制代碼
  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. # 將文件轉(zhuǎn)換為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  # 用戶名、庫(kù)名、路徑
  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. # 在國(guó)內(nèi)默認(rèn)的down_url可能會(huì)無(wú)法訪問(wèn),因此使用CDN訪問(wèn)
  35. if __name__ == '__main__':
  36.      fdata = open_file('cloud.jpg')
  37.      upload_file(fdata)
我的博客,你可以先看一下我的文章和以前幫別人解決的一些技術(shù)問(wèn)題。
專(zhuān)注VB編程開(kāi)發(fā)20年的博客_CSDN博客-作品成品 開(kāi)發(fā)的一些軟件,股票分析理財(cái)投資,自動(dòng)編程 源碼庫(kù)領(lǐng)域博主

https://blog.csdn.net/xiaoyao961