Integracija Aspose.OCR s Amazon S3 omogućuje razvijalcima da iskoriste skladištenje u oblaku za učinkovito pohranjivanje rezultata Optical Character Recognition (OCR). Ova integracija ne samo da pojednostavljuje upravljanje OCR podacima, već i poboljšava skalabilnost i pristupačnost. U ovom tutorialu, proći ćemo kroz proces postavljanja Asposa.ocR da se bezbrižno radi s AWS S3, pružajući detaljne primjere i najbolje prakse na putu.
Potpuni primjer
Preduzeća
- Sljedeći članakNET 8 (ili .NET 6+) SDK je instaliran
- AWS račun s pristupom Amazon S3.
- Slijedeći članakBuket (npr.
my-ocr-demo-bucket
) u vašem omiljenom području (primjer ispod koristiap-south-1
). - (Opcionalno) Izbjegavajte licencijsku datoteku ako želite raditi izvan ocjene.
Korak 1: Ugradite Aspose.OCR za .NET
Instalirajte novu aplikaciju konzole i dodajte pakete 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
Aspoza pruža oboje Aspose.OCR
CPU) i Aspose.OCR-GPU
paketa putem NuGet; samo vam je potreban jedan. (Aspazijska dokumentacija)
Korak 2: Konfiguriranje AWS SDK za .NET
Konfigurirajte svoj AWS profil i stvorite bucket (skip ako već imate jedan).
# 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
Preporučena minimalna politika IAM (priključite se vašem korisniku / ulogu) za ovaj tutorial:
{
"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 vjerodostojni lanac; AWS_PROFILE=ocr-s3
Core S3 uzorci (stvoriti, prenijeti, preuzeti) dokumentiraju se u službenim primjerima AWS-a .NET. (AWS dokumentacija)
Korak 3: Inicijalizirati Aspose.OCR API
Stvaranje osnovne Program.cs
Također ćemo postaviti engleski kao detekciju jezika i rasporeda dokumenata. (Svi tipi prikazani ispod su iz trenutačne površine API Aspose.OCR.) (Slijedeći članakAspose.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...
}
}
Ključne API-e ćemo koristiti sljedeće:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Povratak ARecognitionResult
.RecognitionResult.RecognitionText
/GetJson(bool)
/Save(...)
Pokušajte isporučiti rezultate na TXT/JSON/PDF/DOCX. (Slijedeći članakAspose.com)
Korak 4: Preuzimanje slika na S3
Možete prenijeti slike s diska na S3 s PutObjectAsync
(Možete također preuzeti struje; oba su podržana od strane 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}.");
Pogledajte primjere AWS .NET S3 za uzimanje uzoraka. (AWS dokumentacija)
Korak 5: Izvođenje OCR-a na postavljenim slikama
Prijenos S3 objekta izravno u memoriju i proći kroz MemoryStream
Slijedeći članakAspose.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);
Tko je RecognizeImage
preopterećenja i RecognitionResult.RecognitionText
To je dio aktualnog referentnog API-ja. (Slijedeći članakAspose.com)
Korak 6: Skladištenje rezultata OCR-a u S3
Možete preuzeti ravni tekst, JSON, ili čak PDF/DOCX proizveden od strane Aspose.OCR.
6.a) Sačuvajte kao jednostavan tekst
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) Sačuvajte detaljni 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) Sačuvajte pretraživ PDF (ili DOCX) i stavite na 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}");
Proizvodi za izvoz i spašavanje (RecognitionResult.Save
) i formati (TXT/PDF/DOCX) su u službenoj API referenciji. ([reference.aspose.com][4])
Opcionalno: End-to-end Program.cs
Ovdje je kompaktna verzija od kraja do kraja u koju možete spustiti Program.cs
(slijedeći korak od 3 do 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.");
}
}
Najbolje prakse
Integracija Aspose.OCR s AWS S3 nudi brojne prednosti, uključujući poboljšan upravljanje podacima i poboljšanu skalabilnost.
• sigurnost*
Nikada tajne hardkoda. koristite
aws configure
+AWS_PROFILE
lokalno; koristi IAM uloge u proizvodnji.Razmotrite šifriranje S3 server-side (AES256 ili KMS) na rezultat objekata, i per-bucket politike s najmanjim privilegjem (pokaže se gore).AWS dokumentacija)
izvođenje
Slijedeći članakPoziv za GPU (
Aspose.OCR-GPU
) na CUDA-sposobnom hardveru za ubrzanje OCR; isti kod, brže izvršenje. (Aspazijska dokumentacija)Preproces slike za kvalitetu (deskew, denoise) koristeći
RecognitionSettings
Ako je potrebno, odaberite pravuDetectAreasMode
za dokumente. API opcije su prikazane u referenciji. (Slijedeći članakAspose.com)- Sklanjivost *
Koristite S3 predviđanja kao
input/
ioutput/
po poslu, i skladištenje OCR predmeta (TXT/JSON/PDF) zajedno za praćenje.Omogućite S3 verziju ako želite revidiranu povijest i povratne informacije.
Razmislite o provođenju ovog protoka u kontejnerima ili bez servera (na primjer, AWS Batch/ECS/Lambda s EFS-om) za paralelni OCR na stupnju.
Slijedom ovih smjernica, možete učinkovito integrirati Aspose.OCR s AWS S3 kako biste ubrzali svoj radni tok OCR-a i poboljšali opću učinkovitost vaše aplikacije.
References
- Sljedeći članakPaketi i opcije za instalaciju (
Aspose.OCR
,Aspose.OCR-GPU
). (Aspazijska dokumentacija) AsposeOcr.RecognizeImage(...)
preopterećenja;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (Slijedeći članakAspose.com)- AWS SDK za .NET: S3 stvaranje/upload/download primjera. (AWS dokumentacija)
Ako želite, mogu dodati i mali Makefile
ili PowerShell skript za pokretanje ovog end-to-end, plus CI snippet (GitHub akcije) za potisnuti rezultate na S3 na angažman.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “PoznavanjeRezultat