質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

1771閲覧

GCP:GCS上のファイルを引数にVision APIを実行したいが、サンプルコードが動かない

akl0627

総合スコア8

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2019/05/21 08:49

編集2019/05/21 09:18

前提・実現したいこと

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
※ あまり開発経験なく、試行錯誤しながら進めています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
原因は不明ですが、別のネットワークに再接続したら何事もなく実行できました。

【追記】
環境変数https_proxyをプログラム内(C#スクリプト内)で指定することで解決しました。

投稿2019/05/22 11:07

編集2019/07/26 06:04
akl0627

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問