2016-10-04 14 views
2

このページ(https://developers.google.com/drive/v2/web/manage-downloads)は、Alternateメソッドと呼ばれるダウンロードURLを取得する方法について説明しています。これが私たちが使うものです。このURLを取得してから、このURLでGETリクエストを送信します。問題は返されたレスポンスにコンテンツの長さがないため、プログレスバーを表示できないことです。このURLがダウンロードするコンテンツのコンテンツ長を返すように強制する方法はありますか?特に、ダウンロード用に作成された別のシステムにURLを渡し、そのシステムにGoogleDrive APIを呼び出すロジックがないため、このURLをcontent-lengthに戻すことに興味がありました。 GoogleドライブのAPIでダウンロードファイルのdocumentationをチェックする場合はここでレスポンスヘッダの一例ダウンロードURLにcontent-lengthを返すようにするにはどうすればよいですか?

HTTP/1.1 200 OK 
X-GUploader-UploadID: AEnB2UobhZIKOBsST_-cDZt3BvIK2HSQ5ErTDPsA50BdhaAVrF9RD2Py-57pUoRnleNJnd_Xkg2_RoJClvYTzt0kZfaTSdQ61QB3tWXleX1RpefLObvFf2s 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Credentials: false 
Access-Control-Allow-Headers: Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, GData-Version, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest, X-ClientDetails, X-GData-Client, X-GData-Key, X-Goog-AuthUser, X-Goog-PageId, X-Goog-Encode-Response-If-Executable, X-Goog-Correlation-Id, X-Goog-Request-Info, X-Goog-Experiments, x-goog-iam-authority-selector, x-goog-iam-authorization-token, X-Goog-Spatula, X-Goog-Upload-Command, X-Goog-Upload-Content-Disposition, X-Goog-Upload-Content-Length, X-Goog-Upload-Content-Type, X-Goog-Upload-File-Name, X-Goog-Upload-Offset, X-Goog-Upload-Protocol, X-Goog-Visitor-Id, X-HTTP-Method-Override, X-JavaScript-User-Agent, X-Pan-Versionid, X-Origin, X-Referer, X-Upload-Content-Length, X-Upload-Content-Type, X-Use-HTTP-Status-Code-Override, X-Ios-Bundle-Identifier, X-Android-Package, X-YouTube-VVT, X-YouTube-Page-CL, X-YouTube-Page-Timestamp 
Access-Control-Allow-Methods: GET,OPTIONS 
Content-Type: application/zip 
Content-Disposition: attachment;filename="bluemsx-code-1273.zip";filename*=UTF-8''bluemsx-code-1273.zip 
Date: Tue, 04 Oct 2016 00:24:09 GMT 
Expires: Tue, 04 Oct 2016 00:24:09 GMT 
Cache-Control: private, max-age=0 
X-Goog-Hash: crc32c=inH43w== 
Transfer-Encoding: chunked 
Server: UploadServer 
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32" 

答えて

0

で、ファイルの内容の長さを決定する方法はありません。

したがって、このSO questionに基づいて、ダウンロードのXMLHttpRequest in monitoring the progressを使用する必要があります。

XMLHttpRequestは、リクエストの処理中に発生する可能性のあるさまざまなイベントをリッスンする機能を提供します。これには、定期的な進捗通知、エラー通知などが含まれます。

私が見つけた別の方法は、ProgressListenerという進行状況を監視するための特別なハンドラを使用するtutorialです。詳細とサンプルコードについては、チュートリアルのリンクを確認してください。

+1

私はJavaScriptとXMLHttpRequestオブジェクトを使用していません。コードはC#にありますが、私はその場所でC#Google Drive SDKを使用することはできないと言いましたが、問題ではありません。すべての進捗状況監視技術を完全に認識していますが、今でもデータのダウンロード量は表示されますが、ダウンロードするデータの総量はわからないため、プログレスバーはありませんが、ダウンロードされるKB数は単純です。基本的には、唯一の問題はGoogleドライブのダウンロードURLがあれば、データの総量を取得する方法ですちなみに、ドキュメントは内容の長さについて何も言わない。 – Alex

関連する問題