Ошибка Google Drive SDK при загрузке презентаций

Я пытаюсь загрузить презентацию, используя диск Google API, но презентация не завершена, некоторые слайды пусты, просмотр журналов показывает, что

com.google.api.client.http.HttpRequest execute: -------------- REQUEST  --------------
PUT https://www.googleapis.com/upload/drive/v2/files?    uploadType=resumable&upload_id=AEnB2UrDPJgLIehcqH--aWgwl-   R_atDhqdvbXnJiWMXKE0V0euJGOvULbM4y5YmvUePWaHSrYyFdOgsmTASJGe-Dtvg09NCkzQ
Accept-Encoding: gzip
Authorization: Bearer ya29.AHES6ZTfSaK77NGCcZO1bK_aTbT8zVX3eslOAb8BkrvpeXARK94XsXY
Content-Range: bytes 0-1048575/6774302
User-Agent: Google-HTTP-Java-Client/1.11.0-beta (gzip)
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation
Content-Length: 1048576

com.google.api.client.http.HttpRequest execute: curl -v --compressed -X PUT -H 'Accept-        Encoding: gzip' -H 'Authorization: Bearer     ya29.AHES6ZTfSaK77NGCcZO1bK_aTbT8zVX3eslOAb8BkrvpeXARK94XsXY' -H 'Content-Range: bytes 0-    1048575/6774302' -H 'User-Agent: Google-HTTP-Java-Client/1.11.0-beta (gzip)' -H 'Content-Type:     application/vnd.openxmlformats-officedocument.presentationml.presentation' -d '@-' --     https://www.googleapis.com/upload/drive/v2/files?    uploadType=resumable&upload_id=AEnB2UrDPJgLIehcqH--aWgwl-    R_atDhqdvbXnJiWMXKE0V0euJGOvULbM4y5YmvUePWaHSrYyFdOgsmTASJGe-Dtvg09NCkzQ << $$$

com.google.api.client.http.HttpResponse <init>: -------------- RESPONSE --------------
308 OK
server: HTTP Upload Server Built on Oct 3 2012 16:52:30 (1349308350)
range: bytes=0-1048575
x-range-md5: 19230c1c1a0fc493f3431f46cf30c14c
date: Mon, 05 Nov 2012 22:00:33 GMT
pragma: no-cache
expires: Fri, 01 Jan 1990 00:00:00 GMT
cache-control: no-cache, no-store, must-revalidate
content-length: 0
content-type: text/html; charset=UTF-8
x-google-cache-control: remote-fetch
via: HTTP/1.1 GWA

и это код, который я использую:

byte[] myFile = readImageData(blobKey,size);
ByteArrayContent mediaContent = new ByteArrayContent(mimeType, myFile);

Drive.Files.Insert insert = service.files().insert(body, mediaContent);
insert.getMediaHttpUploader().setChunkSize(1024 * 1024);
File file = insert.execute();

ОБНОВЛЕНИЕ

после некоторого тестирования кажется, что ошибка возникает только при загрузке презентаций с расширением .pptx

есть ли проблема с mimeType этого расширения?

Я надеюсь, что кто-то может мне помочь, спасибо заранее.


person Alexander    schedule 05.11.2012    source источник


Ответы (1)


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

Будет ли он работать правильно, если вы удалите следующую строку из своего кода?

insert.getMediaHttpUploader().setChunkSize(1024 * 1024);
person Claudio Cherubino    schedule 06.11.2012
comment
Спасибо за ответ, но если я удалю эту строку кода, я не смогу загружать файлы размером более 5 МБ. - person Alexander; 06.11.2012
comment
после некоторого тестирования кажется, что ошибка возникает только при загрузке презентаций с расширением .pptx - person Alexander; 07.11.2012