<p>因此,我将在这篇文章的开头提出一个建议,即如果你使用图书馆,那么它很容易做到:</p>
<pre><code>from github3 import GitHubEnterprise
gh = GitHubEnterprise(token=my_token)
repository = gh.repository('abc', 'def')
release = repository.release(id=401)
asset = release.upload_asset(content_type='application/binary', name='foo.sh', asset=open('sometext.txt', 'rb'))
</code></pre>
<p>考虑到这一点,我还将在前面加上“application/binary”不是真正的媒体类型(请参见:<a href="https://www.iana.org/assignments/media-types/media-types.xhtml" rel="nofollow">https://www.iana.org/assignments/media-types/media-types.xhtml</a>)</p>
<p>注意,{2}你的客户端可能需要安装<cd2},这取决于你的cd2}版本。在</p>
<p>我不确定企业实例的URL是什么样子,但是对于public GitHub,它看起来像:</p>
^{pr2}$
<p>因此,您将得到<code>url</code>,并且您需要您的身份验证凭证(在您的情况下,您似乎希望使用基本身份验证)。然后你需要一个<em>有效的</em>媒体类型,例如</p>
<pre><code>headers = {'Content-Type': 'text/plain'}
</code></pre>
<p>你的电话看起来非常正确:</p>
<pre><code>requests.post(url, headers=headers, data=open('file.txt', 'rb'), auth=(username, password))
</code></pre>
<p>要获取正确的url,应执行以下操作:</p>
<pre><code>release = requests.get(release_url, auth=(username, password))
upload_url = release.json().get('upload_url')
</code></pre>
<p><strong>注意</strong>这是一个URITemplate。您需要删除模板,或者使用<code>uritemplate.py</code>这样的库来解析它,并使用它为您构建URL。在</p>
<p>最后一个提醒,github3.py(原始示例中的库)会为您处理所有这些问题。在</p>