2015-01-29 3 views
1

Я пытаюсь загрузить файл с помощью возобновляемой загрузки Google Диска api [https://developers.google.com/drive/web/manage-uploads#resumable], и я всегда получаю код статуса 400 с запросом на недопустимую загрузку в шаге 3 процесса.Ошибка при загрузке Google Диска

Для шага 1 (Starting a resumable session), я получаю сеанс uri, и когда я загружаю содержимое, у меня возникает ошибка с неправильным запросом.

REQUEST HEADERS: 
{ 
    "X-Upload-Content-Length": 249159, 
    "X-Upload-Content-Type": "application/pdf", 
    "content-type": "application/json", 
    "Authorization": "Bearer ya..." 
} 

REQUEST BODY: 
{ 
    "parents": [ 
    { 
     "id": "0B..." 
    } 
    ], 
    "title": "New file.pdf" 
} 

И я получил ответ обратно с сеанса, как URI https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&upload_id=AEnB2UpNCcQgsbuqKer6z25jVRX4ijweQkpAJ1aQ1nEQPGi_ODtvob9vSwQk2oyjzyUNQs-b2HenMst92HQo6WMKmQyO1lgTww

Для шага 3 (Uploading the file) Ниже представлен список заголовков запроса.

{ 
    "Content-Length": 249159, 
    "Accept-Encoding": "gzip, deflate", 
    "Accept": "*/*", 
    "User-Agent": "python-requests/2.3.0 CPython/2.7.8 Darwin/14.0.0", 
    "Content-Range": "bytes 0-249159/249159", 
    "Content-Type": "application/pdf", 
    "Authorization": "Bearer ya..." 
} 

И тело запроса содержит данные, длина которых снова совпадает. Данные представляют собой фрагмент, полученный из другого url с использованием модуля запросов python.

Ниже приводится ответ на выше запрос от Google

{ 
    "error": { 
    "errors": [ 
     { 
     "domain": "global", 
     "reason": "badRequest", 
     "message": "Invalid Upload Request" 
     } 
    ], 
    "code": 400, 
    "message": "Invalid Upload Request" 
    } 
} 

Он работает с другими облаками (тот же метод) для Google Drive, за исключением. Что мне здесь не хватает?

ответ

1

Я, наконец, прибил его сам. Это была ошибка в коде, где диапазон содержимого для последнего фрагмента был отключен на 1 байт.

Смежные вопросы