Інтеграція Aspose.OCR з Amazon S3 дозволяє розробникам користуватися хмарним зберіганням для ефективного зберігання результатів оптичного розпізнавання персонажів (ОКР). Ця інтеграції не тільки полегшує управління даними OCR, але і підвищує масштабізм і доступність. У цьому уроці ми пройдемо через процес встановлення асфозу, щоб безперервно працювати з AWS S3, надаючи детальні приклади та кращі практики на шляху.
Повний приклад
Передумови
- Встановлено .NET 8 (або .Net 6+) SDK.
- Акаунт AWS з доступом до Amazon S3.
- Наприклад, у букетці (наприклад
my-ocr-demo-bucket
) у вашому улюбленому регіоні (приклад нижче використовуєтьсяap-south-1
). - (Вибір) Завантажити ліцензійний файл, якщо ви хочете запустити поза оцінкою.
Крок 1: Налаштування Aspose.OCR для .NET
Налаштуйте нову консольну програму і додайте пакети NuGet.
# Create project
dotnet new console -n OcrS3Demo -f net8.0
cd OcrS3Demo
# Add Aspose.OCR (CPU) OR Aspose.OCR-GPU (pick exactly one)
dotnet add package Aspose.OCR
# dotnet add package Aspose.OCR-GPU # if you prefer GPU build
# Add AWS S3 SDK
dotnet add package AWSSDK.S3
Алкоголь забезпечує обидві Aspose.OCR
ЦПУ) і Aspose.OCR-GPU
Про це йдеться в повідомленні, оприлюдненому на сайті «Укрзалізниці».Асоціація документації)
Крок 2: Налаштування AWS SDK для .NET
Налаштуйте свій профіль AWS і створіть букет (скап, якщо у вас вже є).
# Configure credentials (creates ~/.aws/credentials and config)
aws configure --profile ocr-s3
# AWS Access Key ID: AKIA****************
# AWS Secret Access Key: ************************
# Default region name: ap-south-1
# Default output format: json
# Create a bucket in that region (bucket name must be globally unique)
aws s3api create-bucket \
--bucket my-ocr-demo-bucket \
--region ap-south-1 \
--create-bucket-configuration LocationConstraint=ap-south-1
Рекомендована мінімальна політика IAM (прив’яжіться до вашого користувача / ролі) для цього уроку:
{
"Version": "2012-10-17",
"Statement": [
{ "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::my-ocr-demo-bucket" },
{ "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::my-ocr-demo-bucket/*" }
]
}
AWS SDK для .NET використовує стандартний ланцюг акредитації; AWS_PROFILE=ocr-s3
Core S3 шаблони (зробляти, завантажувати, скачати) документовані в офіційних прикладах AWS .NET. (Документація AWS)
Крок 3: Ініціалізація Aspose.OCR API
Створіть базовий Program.cs
Ми також будемо встановити англійську як розпізнавання мови і оформлення документів. (Всі типи, показані нижче, з поточної поверхні API Aspose.OCR.) (Реферат на тему: Aspose.com)
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using Aspose.OCR;
class Program
{
static async Task Main(string[] args)
{
// Optional: load license if you have one
// new License().SetLicense("Aspose.Total.lic");
var ocr = new AsposeOcr();
var settings = new RecognitionSettings
{
// pick your language(s); can combine if needed
Language = Language.Eng,
DetectAreasMode = DetectAreasMode.DOCUMENT
};
// We'll fill in S3 + OCR steps next...
}
}
Ключові АПІ ми будемо використовувати наступні:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Повернення АRecognitionResult
.RecognitionResult.RecognitionText
/GetJson(bool)
/Save(...)
Дозвольте експортувати результати до TXT/JSON/PDF/DOCX. (Реферат на тему: Aspose.com)
Крок 4: Завантажити зображення в S3
Ви можете завантажити зображення з диска в S3 з PutObjectAsync
(Ви також можете завантажувати потоки; обидва підтримуються AWS SDK.)
// Configure S3 client (uses your AWS_PROFILE locally)
var region = RegionEndpoint.APSouth1; // change if needed
using var s3 = new AmazonS3Client(region);
// Local image you want to OCR:
string localImagePath = @"D:\samples\invoices\invoice-001.png";
string bucket = "my-ocr-demo-bucket";
string objectKey = "input/invoice-001.png";
// Upload the image to S3
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = objectKey,
FilePath = localImagePath,
ContentType = "image/png",
// Optional: enable server-side encryption
// ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
});
Console.WriteLine($"Uploaded {objectKey} to s3://{bucket}.");
Переглянути приклади .NET S3 для завантаження шаблонів. (Документація AWS)
Крок 5: Виконання OCR на завантажених зображеннях
Потік S3 об’єкта безпосередньо в пам’ять і проходить через MemoryStream
Про це йдеться в повідомленні.OCR.
// Download S3 object and OCR in-memory (no temp files)
var get = await s3.GetObjectAsync(bucket, objectKey);
await using var s3Stream = get.ResponseStream;
using var ms = new MemoryStream();
await s3Stream.CopyToAsync(ms);
ms.Position = 0;
// Run OCR (with settings → structured result)
RecognitionResult result = ocr.RecognizeImage(ms, settings);
// Or: if you just need plain text and defaults
// string textFast = ocr.RecognizeImage(ms);
string recognizedText = result.RecognitionText;
Console.WriteLine("=== OCR TEXT ===");
Console.WriteLine(recognizedText);
Того ж RecognizeImage
перевантаження та RecognitionResult.RecognitionText
В даний час є частиною посилання API. (Реферат на тему: Aspose.com)
Крок 6: Зберігання результатів OCR в S3
Ви можете завантажити прямий текст, JSON або навіть PDF/DOCX, що виробляється Aspose.OCR.
6.a) Зберегти як прямий текст
var textKey = "output/invoice-001.txt";
var textBytes = Encoding.UTF8.GetBytes(recognizedText);
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = textKey,
InputStream = new MemoryStream(textBytes),
ContentType = "text/plain"
});
Console.WriteLine($"Saved OCR text to s3://{bucket}/{textKey}");
6.b) Зберегти детальний JSON
var json = result.GetJson(true); // include additional data
var jsonKey = "output/invoice-001.json";
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = jsonKey,
InputStream = new MemoryStream(Encoding.UTF8.GetBytes(json)),
ContentType = "application/json"
});
Console.WriteLine($"Saved OCR JSON to s3://{bucket}/{jsonKey}");
6.c) Зберегти пошуковий PDF (або DOCX) і вставити в S3
// Export to PDF in-memory, then upload
using var outPdf = new MemoryStream();
result.Save(outPdf, SaveFormat.Pdf, "Arial", PdfOptimizationMode.Basic);
outPdf.Position = 0;
var pdfKey = "output/invoice-001.pdf";
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = pdfKey,
InputStream = outPdf,
ContentType = "application/pdf"
});
Console.WriteLine($"Saved OCR PDF to s3://{bucket}/{pdfKey}");
Методи експорту та збереження (RecognitionResult.Save
) і формати (TXT/PDF/DOCX) знаходяться в офіційному посиланні API. ([reference.aspose.com][4])
Вибірка: End-to-end Program.cs
Ось компактна кінцева версія, в яку ви можете потрапити Program.cs
(Перенаправлено з Крок 3 – 6):
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using Aspose.OCR;
class Program
{
static async Task Main()
{
// new License().SetLicense("Aspose.Total.lic"); // optional
string bucket = "my-ocr-demo-bucket";
string regionSystemName = "ap-south-1";
string localImagePath = @"D:\samples\invoices\invoice-001.png";
string imageKey = "input/invoice-001.png";
var ocr = new AsposeOcr();
var settings = new RecognitionSettings
{
Language = Language.Eng,
DetectAreasMode = DetectAreasMode.DOCUMENT
};
using var s3 = new AmazonS3Client(RegionEndpoint.GetBySystemName(regionSystemName));
// Upload original
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = imageKey,
FilePath = localImagePath,
ContentType = "image/png"
});
// Get image as stream
var get = await s3.GetObjectAsync(bucket, imageKey);
await using var s3Stream = get.ResponseStream;
using var ms = new MemoryStream();
await s3Stream.CopyToAsync(ms);
ms.Position = 0;
// OCR
RecognitionResult result = ocr.RecognizeImage(ms, settings);
string text = result.RecognitionText;
// Upload text
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = "output/invoice-001.txt",
InputStream = new MemoryStream(Encoding.UTF8.GetBytes(text)),
ContentType = "text/plain"
});
// Upload JSON
string json = result.GetJson(true);
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = "output/invoice-001.json",
InputStream = new MemoryStream(Encoding.UTF8.GetBytes(json)),
ContentType = "application/json"
});
// Upload PDF
using var outPdf = new MemoryStream();
result.Save(outPdf, SaveFormat.Pdf, "Arial", PdfOptimizationMode.Basic);
outPdf.Position = 0;
await s3.PutObjectAsync(new PutObjectRequest
{
BucketName = bucket,
Key = "output/invoice-001.pdf",
InputStream = outPdf,
ContentType = "application/pdf"
});
Console.WriteLine("OCR complete and results stored in S3.");
}
}
Найкращі практики
Інтеграція Aspose.OCR з AWS S3 пропонує безліч переваг, в тому числі поліпшене управління даними та підвищена масштабільність.
• Безпека*
Ніколи жорсткий код таємниці. використовуйте
aws configure
+AWS_PROFILE
Місцеві; використовуйте ролі IAM в виробництві.Розглянемо шифрування з боку сервера S3 (AES256 або KMS) на результатних об’єктах, а також політики по бакеті з найменшим привілеєм (показано вище).Документація AWS)
Персонаж
Використовуйте пакет GPU (
Aspose.OCR-GPU
) на CUDA-здатний хардвер для прискорення OCR; той же код, швидше виконання. (Асоціація документації)Препроцесувати зображення для якості (відкрити, відкинути) за допомогою
RecognitionSettings
Вибирайте, якщо це необхідно, і виберіть правильнийDetectAreasMode
Для документів. варіанти API відображаються в референції. (Реферат на тему: Aspose.com)- Скваліфікація *
Використовуйте S3 заздалегідь
input/
іoutput/
по роботі, і зберігати об’єкти OCR (TXT/JSON/PDF) разом для відстеження.Увімкніть S3 версії, якщо ви хочете аудиторської історії та зворотних записів.
Розглянемо функціонування цього потоку в контейнерах або без сервера (наприклад, AWS Batch/ECS/Lambda з EFS) для паралельного OCR на масштабі.
Слідкуючи за цими рекомендаціями, ви можете ефективно інтегрувати Aspose.OCR з AWS S3 для ускладнення робочого потоку OCR і поліпшення загальної продуктивності вашої програми.
Реферати
- Застосування та розширення програмного забезпечення (
Aspose.OCR
,Aspose.OCR-GPU
). (Асоціація документації) AsposeOcr.RecognizeImage(...)
перевантажується;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (Реферат на тему: Aspose.com)- AWS SDK для .NET: S3 створити / завантажити / скачати приклади. (Документація AWS)
Якщо ви хочете, я також можу додати маленький Makefile
або PowerShell-скрипт для запуску цього кінця-на-кінці, а також CI снайпет (GitHub Дії), щоб поштовхнути результати до S3 на компроміс.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ «Результати визнання