يتيح دمج Aspose.OCR مع Amazon S3 للمطورين الاستفادة من التخزين في السحابة لتخزن نتائج التعرف على الطابع البصري بفعالية.هذا التكامل لا يسهل إدارة بيانات OCR فحسب، بل يعزز أيضًا القدرة على التوسع والوصول.في هذا الدليل، سنمر من خلال عملية تثبيت Asposa.ocR للعمل بسهولة مع AWS S3, يوفر أمثلة مفصلة وأفضل الممارسات على طول الطريق.

نموذج كامل

المتطلبات

  • نيت 8 (أو .NET 6+) SDK مثبتة.
  • حساب AWS مع إمكانية الوصول إلى Amazon S3.
  • على سبيل المثال، my-ocr-demo-bucket) في منطقتك المفضلة (مثال أدناه تستخدم ap-south-1).
  • (اختياري) إزالة ملف الترخيص إذا كنت ترغب في تشغيل خارج التقييم.

الخطوة 1: إعداد Aspose.OCR لـ .NET

قم بتثبيت تطبيق جديد للوحدة وإضافة حزم 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

تتوفر الأسماك كلاهما Aspose.OCR (CPU ) و Aspose.OCR-GPU الحزمة عبر NuGet ؛ تحتاج فقط إلى واحد. (أسوة الوثائق)

الخطوة 2: إعداد AWS SDK لـ .NET

قم بتعيين ملف تعريف AWS الخاص بك وخلق بوكيت (سكايب إذا كان لديك بالفعل).

# 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

سياسة IAM الحد الأدنى الموصى بها (اتصل بمستخدمك / دورك) لهذا الدليل:

{
  "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 سلسلة الاعتماد الافتراضية. AWS_PROFILE=ocr-s3 سوف تجعلها تختار ملفك الشخصي تلقائيًا عند تشغيلها محلي. يتم توثيق نموذج Core S3 (إنشاء وتحميل وتنزيل) في أمثلة .NET الرسمية لـ AWS. (AWS الوثائق)

الخطوة 3: إطلاق Aspose.OCR API

إنشاء قاعدة Program.cs سوف نقوم أيضًا بتعيين اللغة الإنجليزية ككشف لغة ووضع وثيقة. (جميع الأنواع المذكورة أدناه هي من سطح API Aspose.OCR الحالي.) (أرشيف الوسم : 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...
    }
}

المفاتيح APIs سوف نستخدم التالي:

  • AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings) العودة إلى A RecognitionResult.
  • RecognitionResult.RecognitionText / GetJson(bool) / Save(...) يرجى تصدير النتائج إلى TXT/JSON/PDF/DOCX. (أرشيف الوسم : aspose.com)

الخطوة 4: تحميل الصور إلى S3

يمكنك تحميل الصور من القرص إلى S3 مع PutObjectAsync(يمكنك أيضًا تحميل التدفقات ؛ كلاهما مدعوم من 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}.");

انظر نموذج AWS .NET S3 للحصول على قوالب التحميل. (AWS الوثائق)

الخطوة 5: تنفيذ OCR على الصور التي تم تحميلها

تدفق S3 الكائن مباشرة إلى الذاكرة وتمر عبر MemoryStream إلى 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);

و هو RecognizeImage المبالغ الزائدة و RecognitionResult.RecognitionText انها جزء من إشارة API الحالية. (أرشيف الوسم : aspose.com)

الخطوة 6: تخزين نتائج OCR في S3

يمكنك تحميل النص المسطح، JSON، أو حتى PDF/DOCX التي تنتجها Aspose.OCR.

6. (أ) حفظ النص المباشر

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) حفظ 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) حفظ PDF قابل للبحث (أو DOCX) ووضعها في 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}");

أساليب التصدير والتخزين (RecognitionResult.Save) و تنسيقات (TXT/PDF/DOCX) موجودة في إشارة API الرسمية. ([reference.aspose.com][4])

اختياري: End-to-end Program.cs

إليك نسخة صغيرة من نهاية إلى نهاية يمكنك إدخالها Program.cs (مزيج من الخطوات 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.");
    }
}

أفضل الممارسات

إن دمج Aspose.OCR مع AWS S3 يقدم العديد من المزايا، بما في ذلك تحسين إدارة البيانات وتحسين التوسع.

    • الأمن *
  • أبدًا أسرار الرمز الصلب.استخدام aws configure + AWS_PROFILE محليًا؛ استخدام أدوار IAM في الإنتاج.

  • تأخذ في الاعتبار التشفير على جانب الخادم S3 (AES256 أو KMS) على الكائنات الناتجة، والسياسات الفردية مع الحد الأدنى من الامتيازات (يظهر أعلاه).AWS الوثائق)

  • الأداء

  • استخدم حزمة GPU (Aspose.OCR-GPUعلى الأجهزة القابلة لـ CUDA لتسريع OCR؛ نفس الرمز، أسرع التنفيذ. (أسوة الوثائق)

  • صور ما قبل المعالجة لجودة (تخفيف، إلغاء) باستخدام RecognitionSettings - اقرأ إذا لزم الأمر واختر اليمين الصحيح DetectAreasMode تظهر خيارات API في الإشارة. (أرشيف الوسم : aspose.com)

    • التكلفة *
  • استخدم S3 Prefixes مثل input/ و output/ حسب العمل، وتخزين أدوات OCR (TXT/JSON/PDF) معا للتتبع.

  • إمكانية إصدار S3 إذا كنت ترغب في تاريخ الاستماع والعودة.

  • فكر في تشغيل هذا التدفق في حاويات أو خالية من الخادم (على سبيل المثال، AWS Batch/ECS/Lambda مع EFS) على مقياس OCR الموازي.

من خلال اتباع هذه المبادئ التوجيهية ، يمكنك دمج Aspose.OCR بفعالية مع AWS S3 لتسريع تدفق عمل OCR الخاص بك وتحسين الأداء العام لتطبيقك.

مرجعية

إذا كنت ترغب في ذلك ، يمكنني أيضًا إضافة صغيرة Makefile أو سكريبت PowerShell لتشغيل هذا النهائي إلى النهاية، بالإضافة إلى مقطع CI (إجراءات GitHub) لدفع النتائج إلى S3 على الالتزام.

[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “التعرفالنتائج

More in this category