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-bucketi din foretrukne region (eksempel nedenfor bruger ap-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 A RecognitionResult.
  • 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 rigtige DetectAreasMode for dokumenter. API-mulighederne vises i referencen. (Anmeldelse af aspose.com)

    • Skalaerbarhed *
  • Brug S3 præfixer som input/ og output/ 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

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

More in this category