工控軟件開發(fā)
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 42 個
工控威望: 89 點
下載積分: 504 分
在線時間: 4(小時)
注冊時間: 2023-04-06
最后登錄: 2024-06-04
查看工控軟件開發(fā)的 主題 / 回貼
樓主  發(fā)表于: 2023-04-19 09:16
使用GitHub的API實現(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  # 用戶名、庫名、路徑
  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. # 在國內(nèi)默認(rèn)的down_url可能會無法訪問,因此使用CDN訪問
  35. if __name__ == '__main__':
  36.      fdata = open_file('cloud.jpg')
  37.      upload_file(fdata)
我的博客,你可以先看一下我的文章和以前幫別人解決的一些技術(shù)問題。
專注VB編程開發(fā)20年的博客_CSDN博客-作品成品 開發(fā)的一些軟件,股票分析理財投資,自動編程 源碼庫領(lǐng)域博主

https://blog.csdn.net/xiaoyao961