Интегрисање АСПОЗЕ.ОЦР са Амазон С3 омогућава програмерима да искористе облачно складиштење за сачување резултата оптичког препознавања карактера (ОКР) ефикасно. Ова интеграција не само да поједноставља управљање подацима ОЦС-а, већ и побољшава скалабилност и приступачност. У овом туторијалу, ми ћемо проћи кроз процес постављања АПСОГР да радимо беспрекорно са АВС С3, пружајући детаљне примере и најбоље праксе на путу.
Потпуни пример
Принципи
- .NET 8 (или .Net 6+) SDK је инсталиран.
- AWS račun sa pristupom Amazonu 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: Конфигурисање АВС СДК за .NET
Конфигуришите свој АВС профил и креирајте букет (скик ако већ имате један).
# 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
Препоручује се минимална политика ИАМ (придружи се вашем кориснику / улози) за овај туториал:
{
"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 za .NET koristi podrazumevani verodostojni lanac; AWS_PROFILE=ocr-s3
Core S3 uzorci (stvoriti, preneti, preuzeti) dokumentiraju se u AWS zvaničnim .NET primerima. (AWS Документација)
Корак 3: Иницијализација АСПОЗЕ.ОЦР АПИ
Креирајте основне Program.cs
Такође ћемо поставити енглески као детекцију језика и распореда докумената. (Сви типови приказани испод су са тренутне површине Асписе.ОЦР АПИ.) (референце.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: Преузмите слике на С3
Можете преузети слике са диска на С3 са PutObjectAsync
(Можете такође преузети струје; оба су подржана од стране АВС СДК.)
// 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: Извршити ОЦР на преузетим сликама
Покрените С3 објекат директно у меморију и прођете кроз MemoryStream
Апсолутно - ОЦР
// 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
да су део тренутне АПИ референце. (референце.aspose.com)
Корак 6: Складиштење ОЦР резултата у С3
Можете преузети јасан текст, ЈСОН, или чак и ПДФ/ДОЦКС произведен од стране Асписе.ОЦР.
6.а) Сачувајте као јасан текст
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.б) Сачувајте детаљне 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) Сачувати претраживајуће ПДФ (или ДОЦКС) и ставити на С3
// 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) су у званичном АПИ референцу. ([reference.aspose.com][4])
Опционално: крај до крај 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.");
}
}
Најбоља пракса
Интегрисање Аппосе.ОЦР са АВС С3 нуди многе предности, укључујући побољшано управљање подацима и бољу скалабилност. Ево неких најбољих праксе које треба размотрити:
- Сигурност *
Никада хард код тајне. користити
aws configure
+AWS_PROFILE
локално; користи ИАМ улоге у производњи.Размотрите шифровање са стране сервера С3 (АЕС256 или КМС) на објектима резултата, и политике по букету са најмањим привилегијом (показано горе).AWS Документација)
Извршеност
Користећи ГПУ пакету (
Aspose.OCR-GPU
) на ЦУДА-способном хардверу да убрза ОЦР; исти код, брже извршење. (Апсолутна документација)Препроцесује слике за квалитет (дескеу, одбацивање) користећи
RecognitionSettings
/ пресете ако је потребно, и изаберите правоDetectAreasMode
за документе. АПИ опције су приказане у референцији. (референце.aspose.com)- Скалабилност *
Употреба С3 префикса као
input/
иoutput/
по послу, и складиштење ОЦР артифаката (ТКСТ/ЈСОН/ПДФ) заједно за траженост.Омогућити С3 верзију ако желите ревидирајућу историју и повратне информације.
Размислите о покретању овог тока у контејнерима или без сервера (на пример, АВС Бацх/ЕЦС/Ламбда са ЕФС-ом) за паралелни ОЦР на скали.
Следећи ове упутства, можете ефикасно интегрисати Aspose.OCR са AWS S3 како бисте ускладили свој ОЦР радни ток и побољшали укупне перформансе ваше апликације.
References
- Апсолут.ОЦР НУГЕТ паковања и опције инсталације (
Aspose.OCR
,Aspose.OCR-GPU
). (Апсолутна документација) AsposeOcr.RecognizeImage(...)
преоптерећења;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (референце.aspose.com)- AWS SDK za .NET: S3 kreira/upload/download primere. (AWS Документација)
Ако желите, могу додати и малу Makefile
или PowerShell скрипт за покретање овог крај-на-крај, плус ЦИ снимит (ГитХуб акције) да притисне резултате на С3 на компромис.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “ПрепознавањеРезултат