私のDRFバックエンドから.ipaファイルをpython Multipartデータエンコーダ(http://toolbelt.readthedocs.io/en/latest/uploading-data.html)を使用してサードパーティのアプリケーションにアップロードしようとしています。しかし、私は 'RB' 属性を削除した場合、私が得る、私は( '接続が中断されました。' BrokenPipeError(32、 '壊れたパイプ'))以下のエラー -CSRFでtoolbelt multipartアップロードファイルが失敗します
を取得しています
無効な継続バイト
誰かがOUをポイントしてくださいでした:
は、位置10のバイト0xe3をデコードすることはできません 'UTF-8' コーデックがinstead-以下のエラー何がここに間違っていますか? Btw、私は巨大なファイルをアップロードする可能性があるので、ツールベルトを使用することに決めました。
from django.views.generic import View from django.conf import settings import os import requests #sudo pip install requests, it's an external library from requests_toolbelt.multipart.encoder import MultipartEncoder #pip install requests-toolbelt class upload_binary(generics.GenericAPIView): def post(self, request, format=None): URL = "http://localhost:9020/" csrf = requests.get(URL).cookies['csrftoken'] post_url = "http://localhost:9020/upload/" upload_file_name = "SomeApp.ipa" media_dir = settings.MEDIA_ROOT upload_file_path = os.path.join(media_dir, upload_file_name) filedata = MultipartEncoder(fields = { 'csrfmiddlewaretoken': csrf, 'file1': ('file', open(upload_file_path, 'rb')) }) headersdict = {'X-CSRFToken': csrf, 'Content-Type': filedata.content_type} upload_bin_req = requests.post(post_url, data = filedata, headers = headersdict) return JsonResponse({})