Aspose.OCR’nin Amazon S3 ile entegre edilmesi, geliştiricilerin optik karakter tanıma (OCR) sonuçlarını verimli bir şekilde kaydetmek için bulut depolamasını kullanmalarını sağlar. bu entegrasyon sadece OCR verilerinin yönetimini kolaylaştırmaz, aynı zamanda ölçeklenebilirliği ve erişilebilirliğini de arttırır. Bu öğreticiye göre, AWS S3, ayrıntılı örnekler ve yol boyunca en iyi uygulamaları sağlayacak şekilde çalışmak için ASPOSE.OKR ayarlaması sürecinden geçeceğiz.

Tam örnek

Ön koşullar

  • NET 8 (veya .NET 6+) SDK yüklü.
  • Amazon S3’e erişimi olan bir AWS hesabı.
  • Bir çerçeve (örneğin my-ocr-demo-bucket) tercih ettiğiniz bölgede (aşağıdaki örnek kullanımı ap-south-1).
  • (Seçmeli) Değerlendirme dışında çalışmak istiyorsanız lisans dosyasını kaydırın.

Adım 1: .NET için Aspose.OCR ayarlayın

Yeni bir konsol uygulaması kurun ve NuGet paketleri ekleyin.

# 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

Aspos her ikisini de sağlar Aspose.OCR (CPU) ve Aspose.OCR-GPU paketler üzerinden NuGet; sadece bir ihtiyacınız var. (Aspose Belgelendirme)

Adım 2: .NET için AWS SDK’yı ayarlayın

AWS profilinizi ayarlayın ve bir bucket oluşturun (eğer zaten bir tane varsa kaydırın).

# 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

Bu öğretici için tavsiye edilen minimum IAM politikası (kullanıcınız / rolünüzü bağlayın):

{
  "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/*" }
  ]
}

.NET için AWS SDK varsayılan kimlik zincirini kullanır; ayarları AWS_PROFILE=ocr-s3 Projenizi yerel olarak çalışırken otomatik olarak seçmenizi sağlayacaktır. Core S3 desenleri (yapma, yükleme, indirme) AWS’in resmi .NET örneklerinde belgelendirilir. (AWS Belgeleri)

Adım 3: Aspose.OCR API’yi başlatmak

Bir temel oluşturun Program.cs Ayrıca İngilizce dil ve belge düzenleme tespiti olarak ayarlayacağız. (Aşağıda gösterilen tüm türler mevcut Aspose.OCR API yüzeyinden gelir.) (reference.aspose.com için)

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...
    }
}

Anahtar API’ler aşağıda kullanacağız:

  • AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings) geri döndü a RecognitionResult.
  • RecognitionResult.RecognitionText / GetJson(bool) / Save(...) Sonuçları TXT/JSON/PDF/DOCX’e ihraç edin. (reference.aspose.com için)

Adım 4: Görüntüleri S3’e yüklemek

Görüntüleri diskten S3’e yükleyebilirsiniz PutObjectAsync(Ayrıca akışları yükleyebilirsiniz; her ikisi de AWS SDK tarafından desteklenmektedir.)

// 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}.");

AWS .NET S3 yükleme desenleri için örnekleri görüntüleyin. (AWS Belgeleri)

Adım 5: Yüklenen resimlerde OCR’yi gerçekleştirmek

S3 nesnesini doğrudan hafıza içine aktarın ve MemoryStream Aşağıda 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);

The için RecognizeImage aşırı yükleme ve RecognitionResult.RecognitionText şu anki API referansının bir parçası. (reference.aspose.com için)

Adım 6: S3’te OCR sonuçlarını kaydetmek

Açık metin, JSON veya Aspose.OCR tarafından üretilen bir PDF/DOCX bile yükleyebilirsiniz.

6. a) Açık metin olarak kaydedilir

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) Detaylı JSON kaydetmek

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) Arama yapılabilir bir PDF (veya DOCX) kaydetmek ve S3’e koymak

// 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}");

İhracat ve kurtarma yöntemleri (RecognitionResult.Save) ve formatlar (TXT/PDF/DOCX) resmi API referansında bulunur. ([reference.aspose.com][4])

İndirim: End-to-end Program.cs

İşte içine düşebileceğiniz kompakt bir end-to-end versiyonu Program.cs (Giriş Adımları 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.");
    }
}

En İyi Uygulamalar

Aspose.OCR’yi AWS S3 ile entegre etmek, geliştirilmiş veri yönetimi ve daha iyi ölçeklenebilirlik de dahil olmak üzere birçok avantaj sunar.

    • Güvenlik *
  • Hiçbir zaman sert kod sırları. kullanın aws configure + AWS_PROFILE Yerel olarak; üretimde IAM rollerini kullanın.

  • S3 sunucu tarafında şifreleme (AES256 veya KMS) sonuç nesnelerinde ve en az ayrıcalığı olan per-bucket politikaları (yukarıda gösterilmiştir). AWS’in resmi C# S2 örnekleri baz hattı operasyonları ve desenleri kapsamaktadır. (AWS Belgeleri)

  • performans

  • GPU paketini kullanın (Aspose.OCR-GPU) OCR’yi hızlandırmak için CUDA kapasiteli donanım üzerinde; aynı kod, daha hızlı uygulama. (Aspose Belgelendirme)

  • Ön işleme görüntüleri kalitesi için (deskew, denoise) kullanarak RecognitionSettings İhtiyaç duyulduğunda ve doğru seçeneği seçin. DetectAreasMode Belgeler için. API seçenekleri referansta gösterilir. (reference.aspose.com için)

    • Sıkılaşma *
  • S3 önizlemeleri gibi kullanın input/ ve output/ işe göre ve izlenebilirlik için bir araya OCR eserleri (TXT/JSON/PDF) depolamak.

  • S3 versiyonunu etkinleştirin, eğer dinlenebilir tarih ve rollbacks istiyorsanız.

  • Bu akışın konteynerlerde veya sunucu olmadan çalıştırılmasını düşünün (örneğin, AWS Batch/ECS/Lambda ile EFS) paralel OCR için ölçekte.

Bu talimatları takip ederek, OCR çalışma akışınızı kolaylaştırmak ve uygulamanızın genel performansını arttırmak için Aspose.OCR’yi AWS S3 ile etkili bir şekilde entegre edebilirsiniz.

Referanslar

  • Sürücüsüz.com paketleri ve kurulum seçenekleri (Aspose.OCR, Aspose.OCR-GPU). (Aspose Belgelendirme)
  • AsposeOcr.RecognizeImage(...) aşırı yükleme; RecognitionResult.RecognitionText, GetJson, Save(...). (reference.aspose.com için)
  • .NET için AWS SDK: S3 oluşturma / yükleme / indirme örnekleri. (AWS Belgeleri)

İsterseniz küçük bir tane ekleyebilirim. Makefile veya bu end-to-end çalıştırmak için PowerShell senaryosu, artı bir CI snippet (GitHub Eylemleri) sonuçları S3’e komut üzerinde basmak.

[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “Kayıt Sonuçları

More in this category