Google AppEngine Blobstore: как убедиться, что браузер показывает прогресс и общий размер загрузки? - PullRequest
8 голосов
/ 01 апреля 2011

Когда я работаю с загрузкой из интернет-магазина, я замечаю, что браузер НЕ показывает общий размер и оставшееся время, загрузка продолжается до его завершения, но браузер, похоже, не имеет представления о том, каков общий размерожидается.

Обратите внимание, что:

  • Это происходит только на рабочем сервере, на appspot.com.В среде разработки (localhost) все работает как положено, браузер показывает общий размер, процент выполненных работ и оставшееся время до завершения ...

  • Я попытался установить заголовок 'Содержимое-Длина 'до размера BLOB-объекта, не повезло.

  • При анализе заголовков загруженного большого двоичного объекта заголовок Content-Length отсутствует (даже если я написал его перед использованием send_blob)).Заголовки выглядят так:

HTTP / 1.0 200 OK =>
Cache-Control => no-cache
Content-Disposition => attachment;filename = "Setup.exe"
Expires => Пт, 01 января 1990 00:00:00 GMT
Content-Type => application / octet-stream
Date => Четверг, 31 марта 2011 г. 20:19:52 GMT
Server => Google Frontend

У кого-нибудь есть идеи, как заставить браузер отображать общий размер, процент загрузки и приблизительное оставшееся время?

Ответы [ 2 ]

8 голосов
/ 01 апреля 2011

С этим ничего не поделаешь, кроме этой проблемы .

Вот проблемы:

  1. Класс BlobInfo не имеет атрибута размера файла.

  2. Функция send_blob , имеющая в качестве параметра BlobInfo, не может установить Content-Length заголовок ответа HTTP.

  3. Заголовок Content-Length не может быть изменен приложением в GAE.

0 голосов
/ 28 октября 2016

Если вы используете API Blobstore с Google Cloud Storage, вы можете просто обслуживать через GCS напрямую, используя Blob.generate_signed_url , который добавляет заголовок Content-Length.

...