Az Aspose.OCR integrálása az Amazon S3-val lehetővé teszi a fejlesztők számára, hogy a felhő tárolását hatékonyan tárolják az Optical Character Recognition (OCR) eredmények tárolásához. Ez az integráció nemcsak egyszerűsíti az OCR adatkezelését, hanem fokozza a skálaságot és a hozzáférhetőséget. Ebben az oktatásban az Asposa.ocR beállításának folyamatán keresztül haladunk a AWS S3 munkájához, amely részletes példákat és legjobb gyakorlatokat nyújt az úton.
Teljes példa
előfeltételek
- A .NET 8 (vagy .Net 6+) SDK telepítve van.
- Az AWS-fiók az Amazon S3-hoz való hozzáféréssel rendelkezik.
- Egy csomó (pl.
my-ocr-demo-bucket
az Ön kedvenc régiójában (a következő példa használataap-south-1
). - (Opcionális) Eltávolítsa a licencfájlt, ha az értékelést túl akarja futtatni.
1. lépés: Az Aspose.OCR beállítása a .NET-hez
Telepítse az új konzol alkalmazást, és adja hozzá a NuGet csomagokat.
# 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
Az asztrológia mindkettőt biztosítja Aspose.OCR
(CPU) és Aspose.OCR-GPU
csomagok keresztül NuGet; csak egy van szüksége. (Az ASPOS dokumentáció)
2. lépés: AWS SDK konfigurálása .NET
Állítsa be az AWS profilját, és hozzon létre egy bucketet (skip, ha már van).
# 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
Ajánlott minimális IAM politika (kötelezze meg a felhasználót / szerepet) erre a tanfolyamra:
{
"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/*" }
]
}
Az AWS SDK for .NET használja az alapértelmezett hitelesítési láncot; AWS_PROFILE=ocr-s3
A Core S3 minták ( létrehozása, feltöltése, letöltése) dokumentálva vannak az AWS hivatalos .NET példáiban. (AWS dokumentáció)
3. lépés: Az Aspose.OCR API kezdeményezése
Hozzon létre egy alapot Program.cs
az OCR motor kezdeményezésével. mi is beállítjuk az angol nyelvet és a dokumentum elrendezésének kimutatására. (Az alábbiakban bemutatott összes típus a jelenlegi Aspose.OCR API felületéről származik.) (hivatkozások.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...
}
}
A kulcsfontosságú API-kat a következőkben használjuk:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Visszatér aRecognitionResult
.RecognitionResult.RecognitionText
/GetJson(bool)
/Save(...)
Kérjük, exportálja az eredményeket a TXT/JSON/PDF/DOCX. (hivatkozások.aspose.com)
4. lépés: A képek feltöltése az S3-ra
Képeket tölthet fel a lemezről az S3-ra PutObjectAsync
(A streameket is feltöltheti; mindkettő támogatja az AWS SDK-t.)
// 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}.");
Lásd az AWS .NET S3 példáit a felvételi mintákhoz. (AWS dokumentáció)
5. lépés: Az OCR végrehajtása a feltöltött képeken
Az S3 objektumot közvetlenül a memóriába áramolja, és átadja a MemoryStream
Az 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);
A RecognizeImage
túlterhelés és RecognitionResult.RecognitionText
a jelenlegi API referenciájának részét képezi. (hivatkozások.aspose.com)
6. lépés: Az OCR eredmények tárolása az S3-ban
Tiszta szöveg, JSON vagy akár az Aspose.OCR által előállított PDF/DOCX letölthető.
6. a) Tiszta szövegként menteni
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) A részletes JSON mentése
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) A kereshető PDF (vagy DOCX) mentése és az S3-ra helyezése
// 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}");
Az export és a megtakarítási módszerek (RecognitionResult.Save
) és formátumok (TXT/PDF/DOCX) a hivatalos API referencia. ([reference.aspose.com][4])
Választható: End-to-End Program.cs
Itt van egy kompakt end-to-end verzió, amellyel le tudsz dobni Program.cs
(A 3–6 lépések kombinációja a következő:
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.");
}
}
Legjobb gyakorlatok
Az Aspose.OCR integrálása az AWS S3-val számos előnnyel jár, beleértve a javított adatkezelést és a fokozott méretezhetőséget.
• Biztonság*
Soha ne használjon hardcode titkot
aws configure
+AWS_PROFILE
helyi; IAM szerepeket használ a termelésben.Tekintse meg az S3 szerver oldalak titkosítását (AES256 vagy KMS) az eredményes objektumokon, és a legkisebb kiváltsággal rendelkező per-bucket politikákat (a fentiekben látható).AWS dokumentáció)
teljesítmény
Használja a GPU csomagot (
Aspose.OCR-GPU
) a CUDA-képes hardver felgyorsítása OCR; ugyanaz a kód, gyorsabb végrehajtás. (Az ASPOS dokumentáció)Preprocess képek minőség (deskew, denoise) használatával
RecognitionSettings
Szükség esetén előkészítse, és válassza ki a megfelelőDetectAreasMode
a dokumentumok. API opciók jelennek meg a referenciában. (hivatkozások.aspose.com)• Skálázhatóság*
Használja az S3 előfizetések, mint
input/
ésoutput/
munkahelyen, és tárolja az OCR (TXT/JSON/PDF) elemeket együtt a nyomon követhetőség érdekében.Engedélyezze az S3 verziót, ha auditált történetet és visszajelzéseket szeretne.
Tekintse meg, hogy ezt az áramlást konténerekben vagy szerver nélküli (például az AWS Batch/ECS/Lambda EFS-vel) futtatja a párhuzamos OCR skálán.
Ezeket az iránymutatásokat követve hatékonyan integrálhatja az Aspose.OCR-t az AWS S3-val az OCR munkafolyamatának egyszerűsítésére és az alkalmazás általános teljesítményének javítására.
References
- Az ASPOSE.OCR NuGet csomagok és telepítési lehetőségek (
Aspose.OCR
,Aspose.OCR-GPU
). (Az ASPOS dokumentáció) AsposeOcr.RecognizeImage(...)
a túlterhelés;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (hivatkozások.aspose.com)- AWS SDK for .NET: S3 hozzon létre / töltse fel / töltsön le példákat. (AWS dokumentáció)
Ha szeretné, hozzáadhatok egy kis Makefile
vagy PowerShell forgatókönyv futtatni ezt a végső, plusz egy CI snippet (GitHub Akciók), hogy nyomja az eredményeket S3 a kötelezettség.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “A felismerés eredménye
More in this category
- Automatizált AP: Aspose.OCR Számlázás a .NET szöveghez
- Automatizálja az OCR-t az Aspose.OCR használatával a .NET-hez
- Automatikus adatbevétel az Aspose.OCR segítségével a .NET-hez
- Automatikus DMS címkézés az Aspose.OCR használatával a .NET-hez
- Automatikus dokumentumfeldolgozás az Aspose.OCR .NET használatával