Integrering af Aspose.OCR med Amazon S3 gør det muligt for udviklere at bruge cloud-opbevaring til at opbevare Optical Character Recognition (OCR) resultater effektivt. Denne integration forenkler ikke kun forvaltningen af OCR-data, men forbedrer også skalerbarhed og tilgængelighed. I denne tutorial vil vi gå gennem processen med at indstille Asposa.ocR til uhyre at arbejde med AWS S3, der giver detaljerede eksempler og bedste praksis langs vejen.
Et fuldstændigt eksempel
Forudsætninger
- NET 8 (eller .NET 6+) SDK er installeret.
- En AWS-konto med adgang til Amazon S3.
- En bæk (f.eks.
my-ocr-demo-bucket
i din foretrukne region (eksempel nedenfor brugerap-south-1
). - (Optionelt) Aspose licensfil, hvis du ønsker at køre ud over evaluering.
Trin 1: Opstilling af Aspose.OCR for .NET
Installere en ny konsolapp og tilføje NuGet-pakker.
# 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
Asperger giver begge Aspose.OCR
CPU) og Aspose.OCR-GPU
Pakker via NuGet; du har kun brug for en. (Aspose dokumentation)
Trin 2: Konfigurering af AWS SDK til .NET
Konfigurer din AWS-profil og opretter en bucket (skip, hvis du allerede har en).
# 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
Den anbefalede minimale IAM-politik (tilslut til din bruger / rolle) for denne 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 for .NET bruger standardkrediteringskæden; AWS_PROFILE=ocr-s3
Core S3 mønstre (create, upload, download) er dokumenteret i AWS’ officielle .NET eksempler. (AWS dokumentation)
Trin 3: Initialisering af Aspose.OCR API
Skab en grundlæggende Program.cs
Vi vil også indstille engelsk som sprog og dokument layout detektion. (Alle typer vist nedenfor er fra den nuværende Aspose.OCR API overflade.) (Anmeldelse af 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...
}
}
Nøgle API’er vil vi bruge følgende:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Tilbage ARecognitionResult
.RecognitionResult.RecognitionText
/GetJson(bool)
/Save(...)
Lad dig eksportere resultater til TXT/JSON/PDF/DOCX. (Anmeldelse af aspose.com)
Trin 4: Upload billeder til S3
Du kan downloade billeder fra disken til S3 med PutObjectAsync
(Du kan også uploade strømme; begge er understøttet af 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}.");
Se AWS’ .NET S3 eksempler for upload mønstre. (AWS dokumentation)
Trin 5: At udføre OCR på uploadede billeder
Strøm S3-objektet direkte ind i hukommelsen og pass MemoryStream
Det er op til 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);
Den RecognizeImage
Overbelastning og RecognitionResult.RecognitionText
er en del af den nuværende API reference. (Anmeldelse af aspose.com)
Trin 6: Opbevaring af OCR-resultater i S3
Du kan downloade klar tekst, JSON, eller endda en PDF/DOCX produceret af Aspose.OCR.
6.a) Save som en klar 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) Save detaljeret 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) Save en søgbare PDF (eller DOCX) og sætte til 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}");
Eksport og sparingsmetoder (RecognitionResult.Save
) og formater (TXT/PDF/DOCX) er i den officielle API-reference. ([ref.aspose.com][4])
Alternativt: End-to-End Program.cs
Her er en kompakt end-to-end version, du kan droppe ind Program.cs
(Kombinationer af trin 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.");
}
}
Bedste praksis
Integrering af Aspose.OCR med AWS S3 giver en række fordele, herunder forbedret dataforvaltning og bedre skalerbarhed.
• Sikkerhed*
Aldrig hårdkode hemmeligheder. brug
aws configure
+AWS_PROFILE
lokalt; brug IAM roller i produktion.Overvej S3 server-side kryptering (AES256 eller KMS) på resultaterne objekter, og per-bucket politikker med mindst privilegier (viset ovenfor). AWS officielle C# S3-eksempler dækker baselinjeoperationer og mønstre. (AWS dokumentation)
Udførelse
Brug af GPU-pakken (
Aspose.OCR-GPU
) på CUDA-kapabel hardware til at accelerere OCR; samme kode, hurtigere udførelse. (Aspose dokumentation)Forhåndsbehandling af billeder for kvalitet (deskew, denoise) ved hjælp af
RecognitionSettings
Præsæt, hvis det er nødvendigt, og vælg den rigtigeDetectAreasMode
for dokumenter. API-mulighederne vises i referencen. (Anmeldelse af aspose.com)- Skalaerbarhed *
Brug S3 præfixer som
input/
ogoutput/
opbevaring af OCR-artikler (TXT/JSON/PDF) sammen for sporbarhed.Tillad S3 versionering, hvis du vil have auditive historie og rollbacks.
Overvej at køre denne flow i containere eller uden server (f.eks. AWS Batch/ECS/Lambda med EFS) for parallel OCR på skalaen.
Ved at overholde disse retningslinjer kan du effektivt integrere Aspose.OCR med AWS S3 for at forenkle din OCR arbejdsproces og forbedre den samlede ydeevne i din ansøgning.
References
- Optioner og installationsmuligheder (
Aspose.OCR
,Aspose.OCR-GPU
). (Aspose dokumentation) AsposeOcr.RecognizeImage(...)
overbelastning af;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (Anmeldelse af aspose.com)- AWS SDK for .NET: S3 oprette / uploade / download eksempler. (AWS dokumentation)
Hvis du vil, kan jeg også tilføje en lille Makefile
eller PowerShell script til at køre denne end-to-end, plus en CI snippet (GitHub Aktioner) for at presse resultaterne til S3 på engagement.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “RecognitionResult