ادغام Aspose.OCR با آمازون S3 به توسعه دهندگان اجازه می دهد تا ذخیره سازی ابر را برای ذخایر نتایج تشخیص شخصیت بصری (OCR) به طور موثر استفاده کنند. این یکپارچه سازی نه تنها مدیریت داده های OCR را آسان تر می کند، بلکه مقیاس پذیری و دسترسی را نیز بهبود می بخشد.

نمونه کامل

پیش شرط

  • .NET 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؛ شما فقط به یک نیاز دارید. (اسناد Aspose)

مرحله 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 برای .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...
    }
}

ما از API های کلیدی استفاده خواهیم کرد:

  • AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings) بازگشت به A RecognitionResult.
  • RecognitionResult.RecognitionText / GetJson(bool) / Save(...) اجازه دهید نتایج را به TXT/JSON/PDF/DOCX صادر کنید. (بایگانی برچسب ها: aspose.com)

مرحله چهارم: تصاویر را به 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 به آرشیو .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.a) به عنوان متن صاف ذخیره کنید

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)

  • عملکرد

  • با استفاده از پکیج گرافیک (Aspose.OCR-GPU) بر روی سخت افزار قابل CUDA برای سرعت بخشیدن به OCR؛ همان کد، اجرای سریع تر. (اسناد Aspose)

  • تصاویر پیش پردازش برای کیفیت (deskew، denoise) با استفاده از 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 خود را سریع تر کند و عملکرد کلی برنامه را بهبود بخشد.

مرجع

  • (تصمیم گیری ها و گزینه های نصب و راه اندازی)Aspose.OCR, Aspose.OCR-GPU). (اسناد Aspose)
  • AsposeOcr.RecognizeImage(...) بیش از حد؛ RecognitionResult.RecognitionText, GetJson, Save(...). (بایگانی برچسب ها: aspose.com)
  • AWS SDK برای .NET: S3 ایجاد / بارگذاری / دانلود نمونه ها. (مدارک AWS)

اگر بخواهید می توانم کمی اضافه کنم. Makefile یا اسکریپت PowerShell برای اجرا این end-to-end، به علاوه یک snippet CI (فعالیت های GitHub) برای فشار دادن نتایج به S3 در تعهد.

[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “تصویرآموزش

More in this category