Cloud Storage のエラーとエラー処理

Google Cloud Storage は、App Engine UrlFetch 機能によってアクセスされます。このため、次の 3 種類のエラーが発生します。

  • App Engine UrlFetch の一時エラー。
  • Google Cloud Storage の一時エラー。
  • バケットとオブジェクト権限に関連する Google Cloud Storage エラー。

Cloud Storage 用 App Engine クライアント ライブラリは、App Engine と Google Cloud Storage の両方でタイムアウト エラーを処理し、自動的に再試行を行います。このエラーを処理するロジックをアプリに追加する必要はありません。タイムアウトと再試行の構成は RetryParams クラスで公開します。これにより、デフォルト設定の一部またはすべてを変更できます。すべての関数呼び出しに適用される変更を行うことも、関数の retry_params パラメータを使用して特定の呼び出しに変更を行うこともできます。

エラー

Cloud Storage 用 App Engine クライアント ライブラリには、次のエラー例外クラスが定義されています。

cloudstorage.Error

このパッケージのすべての例外の基本クラスです。このエラーは、App Engine または Google Cloud Storage で発生します。Google Cloud Storage の HTTP エラーコードの詳細については、Google Cloud Storage のドキュメントで HTTP ステータスとエラーコードの説明をご覧ください。

cloudstorage.AuthorizationError
Google Cloud Storage が未承認のリクエストを受信しました。このエラーは、承認済みのアプリが期限切れのトークンを使用すると発生します。通常、このエラーは Cloud Storage 用 App Engine クライアント ライブラリによって自動的に処理され、新しいアクセス トークンでリクエストが再試行されます。
cloudstorage.ForbiddenError

このエラー(403)は、Google Cloud Storage でユーザーにリクエストの送信が許可されていないことを意味します。

  • このエラーにはさまざまな原因が考えられます。詳細については、Google Cloud Storage エラー ドキュメント403-Forbidden の説明をご覧ください。
  • アプリのアクセスを拒否される主な原因としては、バケット権限(バケットの ACL)が正しく設定されていないことが考えられます。アクセスの設定方法については、Google Cloud Storage の認証をご覧ください。

cloudstorage.NotFoundError
HTTP エラー 404。cloudstorage.delete()cloudstorage.listbucket()cloudstorage.open()cloudstorage.stat() の呼び出しで指定したバケットまたはオブジェクトが存在しません。
cloudstorage.TimeoutError
このエラーは、再試行後に Google Cloud Storage サーバーとの接続がタイムアウトすると発生します。デフォルトのタイムアウト処理と再試行を変更する方法については、RetryParams をご覧ください。