私はupload a fileに、Openload REST APIで '240p.mp4'と呼ばれることを試みています。Openload.co APIを使用してファイルをアップロードする方法
アップロードエンドポイントは、ファイルのSHA-1ハッシュを必要とするので、私が行って、それを得た:彼らは作ることをお勧め
url = "https://api.openload.co/1/file/ul?login={login}&key={key}&sha1={sha1}".format(
login='YOUR_LOGIN',
key='YOUR_API_KEY',
sha1=sha1_hash,
)
p = {
'url': url,
'headers': {
'User-Agent': self.ua,
}
}
r = self.r.get(url=p['url'], headers=p['headers'])
j = r.json()
upload_link = j['result']['url']
:だから私は、アップロードリンクを要求し
sha1 = hashlib.sha1()
BLOCKSIZE = 65536
with open('240p.mp4', 'rb') as afile:
buf = afile.read(BLOCKSIZE)
while len(buf) > 0:
sha1.update(buf)
buf = afile.read(BLOCKSIZE)
sha1_hash = sha1.hexdigest()
を CURLしかし、私はrequests
男のよりよ^^
curl -F [email protected]/path/to/file.txt https://13abc37.example.com/ul/jAZUhVzeU78
だから私はPOSTリクエストでそれを複製しようとした:
p = {
'url': upload_link,
'headers': {
'user-agent': self.ua,
'Content-Type': 'multipart/form-data; boundary="xxx"',
},
'files': {
'file1': open('/scripts/wordpress/240p.mp4', "rb"),
# I've also tried this (and some others)
# 'file1': ('240.mp4', open('/scripts/wordpress/240p.mp4', "rb"), 'video/mp4')
}
}
r = self.r.post(url=p['url'], headers=p['headers'], files=p['files'])
しかし、それは、このエラー応答を返します。理論的には
r.content¬
{
"status": 500,
"msg": "failed to read: closed"
}
を、ステータス500エラーがサーバーからのエラーです。しかし、なぜ私はこのエラーが発生していますか?
N1:私はそれをしない場合はので、私は明示的に設定したboundary="xxx"
。レスポンスは、それが欠落していることを返します。だから私はそれを設定した。
N2:ファイル/scripts/wordpress/240p.mp4
のパスが正しいです。パーミッションも。
N3:私はリモートアップロード機能を認識してんだけど、私は(私が意味する地元から)バイナリファイルからアップロードする必要が
N4:かなり明白しかしself.r
がrequests.session()
の割り当てです
使用をhttps://github.com/mohan3d/PyOpenload – Dalvenjia
私はそれを試しつもりです。ありがとう。それがうまくいくなら私はコードがどこで失敗しているかを調べるつもりです... – Jeflopo