Aspose.OCRとAmazon S3の統合により、開発者がクラウドストレージを利用して、光学的性格認識(OCR)の結果を効率的に保存することができます。この組み合わせは、OKRデータの管理を簡素化するだけでなく、スケール性とアクセシビリティを向上させます。
完全例
原則
- .NET 8 (あるいは.NET 6+) SDK がインストールされています。
- Amazon S3 へのアクセスが可能な AWS アカウント。
- バッテリー(例えば、
my-ocr-demo-bucket
) お気に入りの地域(下の使用例)ap-south-1
). - (オプション) 評価を超えて実行したい場合はライセンスファイルを削除します。
ステップ1: .NET のための Aspose.OCR を設定する
新しいコンソールアプリをインストールし、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; あなたは1つだけ必要です。ASPOSE ドキュメンタリー)
ステップ2: .NET の AWS SDK を設定する
AWS プロフィールを設定し、バケットを作成します(すでに 1 つを持っている場合はスキップします)。
# 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 パターン(作成、アップロード、ダウンロード)は AWS の公式 .NET 例に文書化されています。AWS ドキュメント)
ステップ3:ASPOSE.OCR APIの導入
基礎を作る Program.cs
また、英語を言語および文書の配置検出として設定します(下記のすべてのタイプは現在のAspose.OCR API表面から表示されます。トップページ > 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)
戻ってくるARecognitionResult
.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
トップページ > 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:S3でOCR結果を保存する
シンプルなテキスト、JSON、またはAspose.OCRによって生成されたPDF/DOCXをアップロードできます。
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参照にあります。
オプション: 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 を加速するために; 同じコード、より速い実行。ASPOSE ドキュメンタリー)品質のための事前処理画像(デスク、否定)を使用する
RecognitionSettings
必要に応じてプレッシャーをし、正しいものを選ぶ。DetectAreasMode
API オプションは参考文書に表示されます。トップページ > aspose.com)スケール性
S3 プレフィックスの使い方
input/
そしてoutput/
仕事によって、およびトラッキングのためのOCRアーティファクト(TXT/JSON/PDF)を一緒に保存します。S3 バージョンアップを有効にするなら、オーディタイトルとローラーバックが欲しい。
この流れをコンテナやサーバーなしで実行することを検討してください(例えば、AWS Batch/ECS/Lambda with EFS) 並行 OCR スケール。
これらのガイドラインに従って、AWS S3 と Aspose.OCR を効率的に統合して OCR のワークフローを簡素化し、アプリケーションの全体的なパフォーマンスを向上させることができます。
参照
- パッケージとインストールオプション(
Aspose.OCR
,Aspose.OCR-GPU
). (ASPOSE ドキュメンタリー) AsposeOcr.RecognizeImage(...)
積み重ね;RecognitionResult.RecognitionText
,GetJson
,Save(...)
. (トップページ > aspose.com)- AWS SDK for .NET: S3 作成/アップロード/ダウンロード 例(AWS ドキュメント)
欲しいのであれば、小さなものを追加することもできます。 Makefile
あるいは PowerShell スクリプトは、このエンド・トゥ・エンを実行するために、さらに CI シニペット (GitHub アクション) を追加して、結果を S3 に押します。
[4]: https://reference.aspose.com/ocr/net/aspose.ocr/recognitionresult/ 「認定結果」