2

Google Cloud Storage から大きな画像をロードするサーブレットを使用して、Google App Engine に Java アプリケーションがあります。このコードは (昨日のように) 機能し、何らかの理由で機能しなくなりましたが、編集はしていません! 何度か更新しているうちに、一度、ロードするはずの画像の約半分を返し、停止しました。

サーブレットは次のとおりです。

@SuppressWarnings("serial")
public class SomeServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
    {
        BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService();
        String file = req.getParameter("file");
        String folder = req.getParameter("folder");

        BlobKey blobkey = blobstore.createGsBlobKey("/gs/bucket/" + folder + "/" + file + ".jpg");

        blobstore.serve(blobkey, resp);
    }
}

警告/エラー/重大フラグなしのログの内容は次のとおりです。

2012-07-26 19:44:54.635 /servlet?folder=SomeFolder&file=SomeFile 200 96ms 0kb Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 [26/Jul/2012:10: 44:54 -0700] "GET /servlet?folder=SomeFolder&file=SomeFile HTTP/1.1" 200 334 - "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1" "myapp.appspot. com" ms=97 cpu_ms=103 api_cpu_ms=33 cpm_usd=0.002957 インスタンス=00c61b117cef9993f79be3c568c0cbda0f14

http://myapp.appspot.com/servlet?folder=SomeFolder&file=SomeFileの表示は次のとおりです。

エラー: サーバー エラー サーバーでエラーが発生したため、要求を完了できませんでした。問題が解決しない場合は、問題を報告し、このエラー メッセージとその原因となったクエリをお知らせください。

何か案は?

ありがとう!

4

2 に答える 2

0

ファイルを提供しようとしているバケットにアプリがアクセスできることを確信していますか? アプリケーションのサービス アカウントには、提供しようとしているオブジェクトに対する読み取り権限が少なくとも必要です。

ファイルの実際の提供はサーブレットの外部で行われるため、ログには何も表示されません。

于 2012-07-27T07:44:51.793 に答える
0

正確な問題を把握するために、次のことをお勧めします。

  • doGet と catch 例外ハンドラーに try/catch を配置し、エラー メッセージをログに記録するか、画面に書き込みます。
于 2012-07-26T18:15:33.170 に答える