#python #django #amazon-s3 #django-rest-framework #ocr
Вопрос:
Я разрабатываю веб-приложение, чтобы я мог распознавать файлы во время работы, но не привязывать Adobe все время, пока она выполняет распознавание. Моя цель состоит в том, чтобы разрешить пользователю загружать PDF-файл без распознавания, распознавать его с помощью ocrmypdf
инструмента, а затем отправлять полученный файл распознавания в корзину S3, где он загружается пользователем. Я проверил, что могу сохранить обычный PDF-файл в S3, но я зацикливаюсь на том, как на самом деле сохранить версию OCR в S3.
Вот мнение, которое я в настоящее время имею для выполнения распознавания:
class CreatePost(generics.CreateAPIView):
permission_classes = [IsAuthenticated]
parser_classes = [MultiPartParser, FormParser]
def post(self, request, *args, **kwargs):
posts_serializer = FileSerializer(data=request.data)
if posts_serializer.is_valid():
uploaded = posts_serializer.save()
ocr_pdf = subprocess.call(['ocrmypdf', uploaded.file.path, 'output.pdf'])
return Response(ocr_pdf, status=status.HTTP_201_CREATED)
else:
print('error', posts_serializer.errors)
return Response(posts_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return uploaded
Я был бы очень признателен за любую помощь в этом. Спасибо!
Комментарии:
1. ибо
S3
нет никакой разницы, сохраняете ли вы PDF, файл OCRed, изображение, аудио или любой другой файл. Ваша единственная проблема может заключаться в том, чтобы получить результатsubprocess
. Поэтому, возможно, сначала используйтеprint()
файл журнала или файл журнала, чтобы увидеть, какая часть кода выполняется. Может быть, ваш подпроцесс никогда не закончится. ИЛИ, может быть, это вызовет какую-то ошибку, но вы не использовалиtry/except
ее для ее получения.