5

サイズが 64KB を超えるファイルを Web アプリケーションで取得する必要があります。現在、JSON API の v1beta1 では、Google は JSON API 経由で 64KB のサイズのアップロード/ダウンロードのみを許可しています。「再開可能な」アップロードを使用して、サイズが 64KB を超えるファイルをアップロードする方法を見つけました (v1beta1 が JSON API で提供するインターフェース経由ではなく、手動で)。

私が理解できないのは、ダウンロードする良い方法です。ここで、ダウンロードするオブジェクトの ACL を公開し、ファイルをダウンロードしてから、オブジェクトの公開 ACL を削除します。これは非効率であるだけでなく、あまりクリーンでもありません。使用できるより良い方法はありますか、それとも Google が API の将来のバージョンでより良い手段を提供するまで立ち往生していますか?

背景情報 私は GAE アプリケーションを作成しており、google.appengine.api.files インターフェイスについて知っています。残念ながら、これはローカルの開発環境を使用している間はライブ バケットでは機能しません。また、テスト目的で、私のチームと私は開発をローカルでテストする方法が必要です (他の制限/セキュリティ要因の中で、GAE にデプロイするにはあまりにも面倒です)。Cloud Storage を除く他のすべての API と対話できるため、Cloud Storage の読み取り/書き込み/削除時に JSON API または AppEngine のファイル インターフェースを使用するクラスを作成しています。機能する実装を手に入れましたが、ファイルを取得する方法に不満があります。

以下のコメントからの明確化: 大量の情報をダウンロードして処理し、BigQuery で使用するために Cloud Storage に保存しています。開発環境のライブ バケットを使用する必要があります。そうしないと、BigQuery がテスト対象のデータを消費できないからです。これらのファイルを提供する必要はなく、処理するだけです

以下の受け入れられた回答に関するコメントからの解決策:httplib2 JSON API とやり取りするコードから 認証済みオブジェクトを再利用して、 https://{bucket_name}.storage.googleapis.com/{object_name}URL エンドポイントに対して認証済みの GET 要求を実行し、ヘッダーContent-Length: 0x-goog-api-version: 2ヘッダーのみを追加することができました。

4

1 に答える 1

1

ダウンロードの場合、認証されたダウンロードを行う最も簡単な方法は XML API です。このページで詳しく説明されているように、認証されたダウンロードを行うには複数の方法があります: https://developers.google.com/storage/docs/authentication

単純なフェッチ操作の場合、「XML API」という名前は誤解を招く可能性があります。XML を作成する必要はありません。エラーが発生した場合、それは XML として表されますが、ファイルのダウンロードが成功したという最も単純なケースでは、実際には XML は関与していません。

于 2013-01-24T22:37:07.600 に答える