Преобразование нескольких файлов из base64 в pdf в памяти

Я получаю несколько файлов в формате base64 и мне нужно загрузить их на aws s3 в формате pdf, но пока я все перепробовал и все равно не могу этого сделать, есть ли способ конвертировать их в pdf без создания файла?

я использую django rest framwork

      "balance":"base64String",
      "stateOfCashflow":"base64String",
      "financialStatementAudit":"base64String",
      "managementReport":"base64String",
      "certificateOfStockOwnership":"base64String",
      "rentDeclaration":"base64String",

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

в сериализаторе необходимо использовать base64filefield, который принимает строку в base 64 и преобразует ее в pdf за кулисами

from drf_extra_fields.fields import Base64FileField
import PyPDF2
import io


class PDFBase64File(Base64FileField):
    ALLOWED_TYPES = ['pdf']

    def get_file_extension(self, filename, decoded_file):
        try:
            PyPDF2.PdfFileReader(io.BytesIO(decoded_file))
        except PyPDF2.utils.PdfReadError as e:
            print(e)
        else:
            return 'pdf'

class PDFSerializer(serializers.ModelSerializer):
    pdf = PDFBase64File()
    class Meta:
        model = pdf
        fields = "__all__"

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