Как загрузить и сохранить файл pickle в django rest framework?

Как сказано в заголовке, я пытаюсь загрузить model.pkl и сохранить его в API, сделанном на django. Мне удается правильно сохранить model.pkl в API, однако файл загружается в поврежденном виде, потому что я не могу прочитать файл pickle.

Я открыт для любых решений, которые позволят загрузить, сохранить и прочитать файл pickle в API.

Класс для загрузки файла и его сохранения

class FileUploadView(APIView):
    parser_classes = (FileUploadParser,)

    def put(self, request):
        file = request.data.get('file', None)
        file_name = f'path/{file.name}'

        path = default_storage.save(name=file_name, content=ContentFile(file.read()))
        tmp_file = os.path.join(settings.MEDIA_ROOT, path)

        if file is not None:
            return Response(f'File: {file.name} successfully uploaded and saved!', status=HTTP_200_OK)
        else:
            return Response(f'File not found!', status=HTTP_400_BAD_REQUEST)

Ошибка при чтении файла

def read_PickleModel(path_to_PickleModel):
    with open(path_to_PickleModel, 'rb') as f:
        pickle_model = pickle.load(f)
    return pickle_model

read_PickleModel(path_to_PickleModel)

Traceback:
DEBUG: An exception has ocurred: invalid load key, '-'.

Я новичок в этом, пожалуйста, прежде чем голосовать, скажите мне, как вы думаете, как я могу улучшить вопрос, чтобы получить точное решение.

При использовании FileUploadParser все тело запроса должно быть содержимым файла, не отправляйте файл как данные формы.

Чтобы сделать это в Postman, выберите "binary" в качестве типа данных вместо "form-data" и выберите ваш файл там

enter image description here

Для установки имени файла необходимо установить заголовок "Content-Disposition" и передать attachment; filename=<your_filename.ext>

enter image description here

Вернуться на верх