0

Googleドライブへの再開可能なアップロードについて少し混乱しています.誰かが親切に物事を少し明確にしてくれることを願っています.

このページ: https://developers.google.com/api-client-library/python/guide/media_upload
には次のように記載されています。

大きなメディア ファイルの場合は、再開可能なメディア アップロードを使用してファイルを送信できます。これにより、ファイルを小さなチャンクでアップロードできます。

また、next_chunk() を使用してこれを行う方法、エラーのチェック、および指数再試行の使用についても説明します。

ファイルの挿入または更新のアップロードに関する他のすべての参照は、「resumable=True」を使用していますが、「next_chunk」関数を実装していません。このページのように: https://developers.google.com/drive/v2/reference/files/insert#examples

これは、「再開可能」がライブラリによって処理されるということですか?
そうでない場合、エラーの場合、それらは前の例 (next_chunk を使用) と同じですか?
私のアプリがエラーをキャッチすることになっている場合、唯一の方法は最初からアップロードを開始することです。これは、成功バイトまたはその他のものが返されないためです。これは正しい方法ですか?

また、このページ: https://developers.google.com/drive/manage-uploads
には次のように記載されています。

再開可能なアップロードを使用すると、ファイルをチャンクに分割し、一連のリクエストを送信して、各チャンクを順番にアップロードできます。追加のリクエストに関連するパフォーマンス コストが発生するため、これは推奨される方法ではなく、通常は必要ありません。

これらの 2 つのステートメントのうち、どちらが正しいですか?

ご意見をお寄せいただきありがとうございます。
アンドレアス

4

1 に答える 1

0

アンドレアス

resumable=true プロパティを指定した service.files.insert().execute() は、投稿した例の手動の next_chunk と同様のことを行うと思います...それがどのように正確に処理されるかわかりません。ソースを読み取る方法を見つけることはできません (私は Python から始めたばかりです)。ただし、.insert().execute() メソッドを resumable=true で使用して大きなファイルのアップロードを中断すると、出力はこれです:

File "/usr/lib/python2.5/site-packages/apiclient/http.py", line 656, in execute
  _, body = self.next_chunk(http=http)

ただし、このメソッドを使用して進行状況インジケーターを取得する方法が見つからなかったため、代わりに手動の request.next_chunk() を使用することを好みました。

再開可能なアップロードのパフォーマンス コストについては、追加の情報が送信されますが、プロセスが遅くなりすぎるとは思いません...より大きなチャンクサイズ (いくつかの MiB) を使用できるため、余分なリクエスト バイトは無視できます。SDK のドキュメントでは、状況によっては再開可能なアップロードを支持すると主張しています。

「データ ファイルをより確実にアップロードするには、再開可能なアップロード プロトコルを使用できます。このプロトコルを使用すると、通信障害によってデータの流れが中断された後にアップロード操作を再開できます。大きなファイルを転送する場合に特に役立ちます。たとえば、モバイル クライアント アプリからアップロードする場合など、ネットワークの中断やその他の伝送障害が発生している場合. 大きなファイルのアップロードを最初からやり直す必要がないため、ネットワーク障害が発生した場合の帯域幅の使用量を減らすこともできます. "

于 2013-01-12T22:22:10.563 に答える