Aspose.OCR: n integrointi Amazon S3: n kanssa antaa kehittäjille mahdollisuuden hyödyntää pilvipalvelua optisen luonteen tunnistamisen (OCR) tulosten tallentamiseksi tehokkaasti. Tämä integraatio ei ainoastaan yksinkertaista OCR-tietojen hallintaa, vaan myös parantaa skalaavuutta ja saavutettavuutta. Tässä opinnäytetyössä käymme läpi Asposen asettamisen prosessia työskentelemään AWS S3-laitteella, joka tarjoaa yksityiskohtaisia esimerkkejä ja parhaita käytäntöjä tiellä.
Täydellinen esimerkki
edellytykset
- .NET 8 (tai .Net 6+) SDK asennettu.
- AWS-tili, jolla on pääsy Amazon S3:een.
- Yksi puoli (esim.
my-ocr-demo-bucket
) suosikkialueella (esimerkki alla käytetäänap-south-1
). - (Vaihtoehtoinen) Poista lisenssi tiedosto, jos haluat suorittaa yli arvioinnin.
Vaihe 1: Aseta Aspose.OCR .NETille
Asenna uusi konsoli-sovellus ja lisää NuGet-paketteja.
# 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
Aspoosi tarjoaa molempia Aspose.OCR
CPU ja Aspose.OCR-GPU
paketit kautta NuGet; tarvitset vain yhden. (ASPOSE dokumentti)
Vaihe 2: AWS SDK:n määrittäminen .NET
Aseta AWS-profiili ja luo bucket (skip, jos sinulla on jo yksi).
# 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
Suositeltu minimipolitiikka IAM (liitän käyttäjän / roolin) tähän oppaan:
{
"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 käyttää oletusarvoista luottoluetteloa; asetukset AWS_PROFILE=ocr-s3
Se valitsee profiilisi automaattisesti, kun se toimii paikallisesti. Core S3 -malleja ( luo, lataa, ladata) on dokumentoitu AWS: n virallisissa .NET-näytteissä. (AWS dokumentti)
Vaihe 3: Aloittaminen Aspose.OCR API
Luo perusta Program.cs
OCR-moottorin aloittaminen. asetamme myös Englanti kielen ja asiakirjan järjestyksen havaitsemiseksi. (Kaikki alla esitetyt tyypit ovat nykyisestä Aspose.OCR API-pinnasta.) (Lisätietoja.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...
}
}
Avain APIs käytämme seuraavasti:
AsposeOcr.RecognizeImage(MemoryStream, RecognitionSettings)
Paluu ARecognitionResult
.RecognitionResult.RecognitionText
/GetJson(bool)
/Save(...)
laita tulokset vientiin TXT/JSON/PDF/DOCX. (Lisätietoja.aspose.com)
Vaihe 4: Kuvien lataaminen S3:een
Voit ladata kuvia levystä S3:een PutObjectAsync
(Voit myös ladata virtoja; molemmat tukevat AWS SDK:tä.)
// 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}.");
Katso AWS .NET S3 esimerkkejä latausmalleja varten. (AWS dokumentti)
Vaihe 5: OCR: n suorittaminen ladatuilla kuvilla
Virtaa S3-objekti suoraan muistiin ja siirtää MemoryStream
Siinä on ASPOS.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);
Se on RecognizeImage
Ylikuormitukset ja RecognitionResult.RecognitionText
on osa nykyistä API-viittausta. (Lisätietoja.aspose.com)
Vaihe 6: OCR-tulosten tallentaminen S3: ssä
Voit ladata tasaisen tekstin, JSON, tai jopa PDF/DOCX tuottama Aspose.OCR.
6. a) Tallenna selkeänä tekstinä
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) Tallenna yksityiskohtainen 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) Tallenna etsimätön PDF (tai DOCX) ja aseta 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}");
Tuotanto ja säästämismenetelmät (RecognitionResult.Save
) ja muodot (TXT/PDF/DOCX) ovat virallisessa API-viittauksessa. ([reference.aspose.com][4])
Vaihtoehtoinen: End-to-end Program.cs
Tässä on kompakti end-to-end versio, jonka voit laskea sisään Program.cs
(Käynnit vaiheet 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.");
}
}
Parhaat käytännöt
Aspose.OCR:n integrointi AWS S3:n kanssa tarjoaa lukuisia etuja, mukaan lukien parannettu tietohallinta ja skalaavuuden parantaminen.
• Turvallisuus*
Älä koskaan käytä kiintolevyn salaisuuksia.
aws configure
+AWS_PROFILE
paikallisesti; IAM: n rooleja tuotannossa.Harkitse S3-palvelin-sivun salausta (AES256 tai KMS) tuloksellisilla esineillä ja per-bucket-politiikoilla vähiten etuoikeuksia (näytetään edellä). AWS: n viralliset C# S3 esimerkit kattavat peruslinjan toiminnot ja mallit. (AWS dokumentti)
suorituskyky
Käytä GPU-pakettia
Aspose.OCR-GPU
) CUDA-valmiilla laitteilla nopeuttaa OCR; sama koodi, nopeampi täytäntöönpano. (ASPOSE dokumentti)Preprocess kuvien laadun (deskew, denoise) käyttäen
RecognitionSettings
- Valitse tarvittaessa ja valitse oikeaDetectAreasMode
Asiakirjoihin. API-vaihtoehdot näkyvät viitteessä. (Lisätietoja.aspose.com)- Skalaattisuus *
Käytä S3 Prefixes kuten
input/
jaoutput/
OCR-artikkeleita (TXT/JSON/PDF) tallennetaan yhdessä jäljitettävyyteen.S3 -versiointi on sallittua, jos haluat tarkastettavan historian ja palautetta.
Harkitse, että tämä virta käynnistyy säiliöissä tai palvelimattomissa (esimerkiksi AWS Batch/ECS/Lambda kanssa EFS) rinnakkaiseen OCR: n mittakaavassa.
Noudattamalla näitä ohjeita voit tehokkaasti integroida Aspose.OCR AWS S3:n kanssa OCR:n työnkulun yksinkertaistamiseksi ja sovelluksen yleisen suorituskyvyn parantamiseksi.
References
- Pankkit ja asennusvaihtoehdot (
Aspose.OCR
,Aspose.OCR-GPU
). (ASPOSE dokumentti) AsposeOcr.RecognizeImage(...)
ylikuormittaminen ;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (Lisätietoja.aspose.com)- AWS SDK for .NET: S3 luo / lataa / ladata esimerkkejä. (AWS dokumentti)
Jos haluat, voin myös lisätä pienen Makefile
tai PowerShell skripti käynnistää tämän end-to-end, plus CI snippet (GitHub toimenpiteet) painaa tuloksia S3 sitoutumalla.
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ “Tunnistuksen tulos