前提・実現したいこと
Web画面からPDFファイルを指定し、GCSへのアップロード+vision APIでの文字起こし実行をしたいです。
そのために、GoogleのVision APIでPDF/TIFFファイルのOCRを実行しようとしています。
発生している問題・エラーメッセージ
下記のコードを他のメソッドから呼び出したものの、メッセージやコンパイルエラーは出ず、10分くらい待っても次のブレークポイントに進みません。
開発経験が浅く見当がついていないのですが、どうデバッグしたらいいのでしょうか…
該当のソースコード
下記のコードを他のメソッドから呼び出しています。
(Googleのサンプルコードをそのまま使っています)
C#
1private static object DetectDocument(string gcsSourceUri, string gcsDestinationBucketName, string gcsDestinationPrefixName) 2 { 3 var client = ImageAnnotatorClient.Create(); 4 var asyncRequest = new AsyncAnnotateFileRequest 5 { 6 InputConfig = new InputConfig 7 { 8 GcsSource = new GcsSource 9 { 10 Uri = gcsSourceUri 11 }, 12 // Supported mime_types are: 'application/pdf' and 'image/tiff' 13 MimeType = "application/pdf" 14 }, 15 OutputConfig = new OutputConfig 16 { 17 // How many pages should be grouped into each json output file. 18 BatchSize = 100, 19 GcsDestination = new GcsDestination 20 { 21 Uri = $"gs://{gcsDestinationBucketName}/{gcsDestinationPrefixName}" 22 } 23 } 24 }; 25 26 asyncRequest.Features.Add(new Feature 27 { 28 Type = Feature.Types.Type.DocumentTextDetection 29 }); 30 List<AsyncAnnotateFileRequest> requests = new List<AsyncAnnotateFileRequest>(); 31 requests.Add(asyncRequest); 32 var operation = client.AsyncBatchAnnotateFiles(requests); 33 Console.WriteLine("Waiting for the operation to finish"); 34 operation.PollUntilCompleted(); 35 // Once the rquest has completed and the output has been 36 // written to GCS, we can list all the output files. 37 var storageClient = StorageClient.Create(); 38 39 // List objects with the given prefix. 40 var blobList = storageClient.ListObjects(gcsDestinationBucketName, 41 gcsDestinationPrefixName);
試したこと
- DetectDocumentの引数が正しいか →正しい
- DetectDocumentの引数で指定したとおり、ファイルをGCSにおいているか →おいている
- サービスアカウントキーでの認証 →できている
- 【追記】GCSのファイルの公開ステータス →非公開(サービスアカウントキー利用のため問題なしと認識)
- 【追記】システムからアクセスする際の権限(IAM)→ストレージへのcreate権限とread権限付与済。編集権限はなし
補足情報(FW/ツールのバージョンなど)
言語:c#(ASP.NET)
環境:Visual Studio 2017
※ あまり開発経験なく、試行錯誤しながら進めています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。