Integrace Aspose.OCR s Amazon S3 umožňuje vývojářům efektivně využívat cloudové úložiště pro ukládání výsledků optického rozpoznávání charakteru (OCR). Tato integrace nejen zjednodušuje správu údajů OCR, ale také zlepšuje škálovatelnost a dostupnost. V tomto tutoriálu projdeme procesem nastavení ASPOSE.OKR pro bezproblémovou práci s AWS S3, který poskytuje podrobné příklady a osvědčené postupy na cestě.

Kompletní příklad

Předpoklady

  • .NET 8 (nebo .Net 6+) SDK je nainstalován.
  • AWS účet s přístupem k Amazon S3.
  • Vybraný balík (např. my-ocr-demo-bucket) ve vaší oblíbené oblasti (příklad níže používá ap-south-1).a).
  • (volitelné) Odstranit licenci soubor, pokud chcete spustit mimo hodnocení.

Krok 1: Nastavení Aspose.OCR pro .NET

Instalujte novou aplikaci konzole a přidejte pakety 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 poskytuje obojí Aspose.OCR CPU) a Aspose.OCR-GPU balíčky prostřednictvím NuGet; budete potřebovat pouze jeden. (Aspoční dokumentace)

Krok 2: Konfigurace AWS SDK pro .NET

Konfigurujte svůj profil AWS a vytvořte bucket (skip, pokud již máte jeden).

# 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

Doporučená minimální politika IAM (připojte se k vašemu uživateli / roli) pro tento tutoriál:

{
  "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 pro .NET používá výchozí řetězec ověřování; nastavení AWS_PROFILE=ocr-s3 bude to vybrat váš profil automaticky při provozu lokálně. Core S3 vzory (stvořit, nahrát, stáhnout) jsou dokumentovány v oficiálních příkladech AWS .NET. (Dokumentace AWS)

Krok 3: Initializace Aspose.OCR API

Vytvořte základní Program.cs s inicializací motoru OCR. Budeme také nastavit angličtinu jako detekci jazyka a rozložení dokumentu. (Všechny typy uvedené níže jsou z aktuálního povrchu API Aspose.OCR.) (Články odkazující.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...
    }
}

Klíčové API budeme používat následující:

  • AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings) Vrátí se A RecognitionResult.
  • RecognitionResult.RecognitionText / GetJson(bool) / Save(...) Přečtěte si o tématu TXT/JSON/PDF/DOCX.Články odkazující.aspose.com)

Krok 4: Stáhnout obrázky do S3

Můžete nahrát obrázky z disku na S3 s PutObjectAsync(Můžete také stáhnout toky; oba jsou podporovány 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}.");

Podívejte se na příklady AWS .NET S3 pro nahrávací vzory. (Dokumentace AWS)

Krok 5: Provádění OCR na nahraných snímcích

Stream objekt S3 přímo do paměti a projít MemoryStream Připravte se na ASP.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 to RecognizeImage Přetížení a RecognitionResult.RecognitionText je součástí aktuálního referenčního API. (Články odkazující.aspose.com)

Krok 6: Uložení výsledků OCR v S3

Můžete si stáhnout plochý text, JSON nebo dokonce PDF/DOCX vyrobený společností Aspose.OCR.

6.a) Uložte jako jasný text

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) Ušetřete podrobné 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) Uložte vyhledatelný PDF (nebo DOCX) a vložte do 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}");

Vývoz a úspora způsobů (RecognitionResult.Save) a formáty (TXT/PDF/DOCX) jsou v oficiálním odkazu API. ([reference.aspose.com][4])

Volitelné: End-to-end Program.cs

Zde je kompaktní end-to-end verze, do které můžete spadnout Program.cs (připojení kroků 3 až 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.");
    }
}

Nejlepší postupy

Integrace Aspose.OCR s AWS S3 nabízí řadu výhod, včetně zlepšeného řízení dat a zlepšení skalovatelnosti.

  • • Bezpečnost*

  • Nikdy tvrdé kódové tajemství. použít aws configure + AWS_PROFILE lokálně; používá role IAM v výrobě.

  • Zvažte šifrování na straně serveru S3 (AES256 nebo KMS) na výsledných objektech a zásadách per-bucket s nejmenším privilegiem (viz výše).Dokumentace AWS)

  • Výsledky

  • Použijte balíček GPU (Aspose.OCR-GPU) na hardwaru schopném CUDA urychlit OCR; stejný kód, rychlejší výkon. (Aspoční dokumentace)

  • Předběžné zpracování snímků pro kvalitu (deskew, denoise) pomocí RecognitionSettings v případě potřeby a vyberte správný DetectAreasMode pro dokumenty. API možnosti jsou uvedeny v referenci. (Články odkazující.aspose.com)

  • • Skvalitní *

  • Použijte S3 prefiksy jako input/ a output/ po práci a ukládání OCR artefaktů (TXT/JSON/PDF) dohromady pro sledovatelnost.

  • Umožňuje S3 verzi, pokud chcete auditivní historii a zpětné vazby.

  • Zvažte spuštění tohoto toku v kontejnerech nebo bez serveru (např. AWS Batch/ECS/Lambda s EFS) pro paralelní OCR na stupnici.

Sledováním těchto pokynů můžete efektivně integrovat Aspose.OCR s AWS S3 pro zjednodušení pracovního toku OCR a zlepšení celkového výkonu vaší aplikace.

Reference

Pokud budete chtít, můžu přidat i malou Makefile nebo PowerShell skript pro spuštění tohoto end-to-end, plus CI snippet (GitHub Akce) tlačit výsledky na S3 na závazek.

[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “RozpoznáníVýsledky

More in this category