问题描述
我一直在寻找一种更好的方法来自动将新文件或现有文件上传到我的存储库。以下代码只能更新现有文件(现在对我来说没什么大不了的)并且不适用于大文件。
def push_to_github(filename,repo,branch,token):
url="https://api.github.com/repos/"+repo+"/contents/"+filename
base64content=base64.b64encode(open(filename,"rb").read())
data = requests.get(url+'?ref='+branch,headers = {"Authorization": "token "+token}).json()
sha = data['sha']
if base64content.decode('utf-8')+"\n" != data['content']:
message = json.dumps({"message":"update","branch": branch,"content": base64content.decode("utf-8"),"sha": sha
})
resp=requests.put(url,data = message,headers = {"Content-Type": "application/json","Authorization": "token "+token})
print(resp)
else:
print("nothing to update")
token = "lskdlfszezeirzoherkzjehrkzjrzerzer"
filename="foo.txt"
repo = "you/test"
branch="master"
push_to_github(filename,token)
KeyError: 'sha'
但它在小文件上运行良好。
当我尝试在代码中运行 data 变量时,我收到以下消息,这让我认为我需要一种不同的方式来接受 60 Mbs 甚至更多的更大文件。
{'message': 'This API returns blobs up to 1 MB in size. The requested blob is too large to fetch via the API,but you can use the Git Data API to request blobs up to 100 MB in size.','errors': [{'resource': 'Blob','field': 'data','code': 'too_large'}],'documentation_url': 'https://docs.github.com/rest/reference/repos#get-repository-content'}
有人知道如何处理吗?我很难点击建议的链接。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)