אינטגרציה של Aspose.OCR עם Amazon S3 מאפשרת למפתחים לשפר את אחסון הענן כדי לאחסן את תוצאות זיהוי אופי אופטי (OCR) ביעילות.השילוב הזה לא רק מקדם את ניהול הנתונים של OCR, אלא גם מגביר את ההרחבה והגישה.במדריך זה, נלך דרך תהליך ההגדרה של ASPOSE.OKR לעבוד בקלות עם AWS S3, המספק דוגמאות מפורטות ושיטות טובות לאורך הדרך.

דוגמה מלאה

דרישות

  • התקנת .NET 8 (או .Net 6+) SDK.
  • חשבון AWS עם גישה לאמזון 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 עבור .NET משתמש בשרשרת האמינות הנדרשת; הגדרות AWS_PROFILE=ocr-s3 תבחר את הפרופיל שלך באופן אוטומטי כאשר הוא פועל באופן מקומי.תבניות Core S3 (יצירת, העלאת, הורדה) מסומנות בדוגמאות .NET הרשמיות של AWS. (מסמכי AWS)

שלב 3: הפעלת API Aspose.OCR

יצירת בסיס 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) חוזר א 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);

The 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) על אובייקטים תוצאות, ומדיניות per-bucket עם הזכות הנמוכה ביותר (הוצגה לעיל).מסמכי AWS)

  • ביצועים

  • השתמשו בחבילת ה-GPU (Aspose.OCR-GPUעל חומרה מסוגלת להאיץ את OCR; אותו קוד, ביצוע מהיר יותר. (תיעוד אספוס)

  • תמונות מראש לשימוש באיכות (deskew, denoise) באמצעות RecognitionSettings אם יש צורך, בחר את הנכון. DetectAreasMode עבור מסמכים. API אפשרויות מופיעות בהרשמה. (תגית: aspose.com)

    • חריגה *
  • השתמש S3 Prefixes כמו input/ ו output/ לפי עבודה, ומאוחסנים אובייקטים OCR (TXT/JSON/PDF) יחד למטרות מעקב.

  • האפשרות S3 גרסה אם אתה רוצה היסטוריה אוטומטית ו rollbacks.

  • שימו לב לביצוע זרימה זו במכולות או ללא שרת (לדוגמה, AWS Batch/ECS/Lambda עם EFS) עבור OCR מקבילה בקנה מידה.

על ידי עמידה בהנחיות אלה, באפשרותך לשלב ביעילות את Aspose.OCR עם AWS S3 כדי להקל על זרימת העבודה של OCR שלך ולשפר את הביצועים הכלליים של היישום שלך.

רמזים

  • חבילות ופתרונות ההתקנה (Aspose.OCR, Aspose.OCR-GPU). (תיעוד אספוס)
  • AsposeOcr.RecognizeImage(...) יתר על המידה; RecognitionResult.RecognitionText, GetJson, Save(...). (תגית: aspose.com)
  • AWS SDK עבור .NET: S3 יצירת / העלאת / הורדת דוגמאות. (מסמכי AWS)

אם אתה רוצה, אני יכול גם להוסיף קטנטן Makefile או PowerShell סקריפט כדי להפעיל את זה end-to-end, בתוספת CI snippet (פעולות GitHub) כדי לדחוף את התוצאות ל S3 על ההתחייבות.

[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “ההכרהתוצאה

More in this category