1〜2GBの大きなファイルをZendoサンドボックスにアップロードしようとしています。 リクエストを送信すると、EPIPEエラーが発生し続けます。
data = {"filename":'test.tar'}
files ={'file' : ("test.tar",open('test.tar','rb'),{'Expires': '0'})}
r = requests.post('https://sandbox.zenodo.org/api/deposit/depositions/274851/files',
params={'access_token': ACCESS_TOKEN},files=files,data=data)
私が得るエラーは次のとおりです
ConnectionError: ('Connection aborted.', error("(32, 'EPIPE')",))
これは、アップロードに課せられたサイズ制限によるものですか?
返信@frankoisありがとうございます。 新しいAPIをチェックアウトします。
_new_および_old_APIについて読んだとき、私は少し混乱しています。それらが見つかりません。
Zenodoを発見したばかりで、これが私が見つけた唯一のドキュメントです。 ただし、_new_または_old_APIを参照しているとは言えません。
https://developers.zenodo.org
したがって、_old_バージョンと_new_バージョンの両方が同時に機能し続け、異なるURLアクセスを持っているかどうかはわかりません...またはAPIアクセスが1つしかないため、既存のPythonアプリケーションが変更や新機能のために機能しなくなる可能性があります。
@frankoisでこれを明確にして
公開された変更ログがどこかにあるので、新しいAPI機能がいつリリースされたかを知ることができますか?
つまり、どこかでPythonスクリプトを見つけた場合、それが古いAPI用に作成されたのか新しいAPI用に作成されたのかを(日付で)どのように判断できますか?
具体的には、このPythonインターフェースをZenodoAPIに使用しようとし
https://github.com/SiLeBAT/zenodo-python
私が報告したようにしかし、そこをリポジトリ内のファイルが壊れるので、私のアップロードは失敗しています。
@frankoisによって言及されたAPIのこの変更に関連している可能性があると
専門家がコードのこの行を確認してください:
data = {'file': open(file_path, 'rb')}
そして、リンクと比較提供上記@slintは@frankoisによって、言います:
「_ファイルオブジェクト(fp)を直接渡して、ストリームアップロード用の「データ」としてリクエストします_」。
したがって、上記の行は_old API_を参照していると思いますが、おそらく次のように修正する必要がありますか?
data = open(file_path, 'rb')
最も参考になるコメント
実際、ファイルごとに最大100MBをサポートする古いAPIのサイズ制限があります。 新しいAPIはファイルあたり最大50GBをサポートし、次のリンクでその使用方法を確認できます。
このAPIは完全に安定しているわけではないため、将来少し変更される可能性があります。 安定版を開発したらすぐに、次のドキュメントを更新します: http: //developers.zenodo.org/#deposition -files
さらにサポートが必要な場合はお知らせください。