Преобразование нескольких файлов из 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__"