Интегрирането на Aspose.OCR с Amazon S3 позволява на разработчиците да използват облачно съхранение, за да съхраняват резултатите от оптичното разпознаване на характера (ОКР) ефективно. Тази интеграция не само улеснява управлението на данните на OCR, но също така подобрява скалируемостта и достъпността. В този урок ще преминем през процеса на настройка на ASPOSE.OKR да работим безпроблемно с 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
CPU и Aspose.OCR-GPU
Пакети чрез NuGet; имате нужда само от един. (Аспирационна документация)
Стъпка 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 шаблони (създаване, качване, изтегляне) са документирани в официалните .NET примери на AWS. (Документация на 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...
}
}
Ключови APIs ще използваме по-долу:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Връщане на ARecognitionResult
.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
Използва се от ASPOSE.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 и да подобрите общата ефективност на приложението си.
References
- Използване на пакети и опции за инсталиране (
Aspose.OCR
,Aspose.OCR-GPU
). (Аспирационна документация) AsposeOcr.RecognizeImage(...)
претоварване ;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (заглавието.aspose.com)- AWS SDK за .NET: S3 създаване / изтегляне / качване на примери. (Документация на AWS)
Ако искате, мога да добавя и малко. Makefile
или PowerShell скрипт за изпълнение на този край-на-върх, плюс CI snippet (GitHub Действия), за да потисне резултатите към S3 на ангажиране.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “RecognitionРезултатът