사용자에게 Google 문서 도구 통합 기능을 제공하는 PHP 응용 프로그램이 있으며 사용자의 문서 계정에 직접 파일을 업로드하는 기능을 추가하려고합니다. 내 요구 사항이 간단하기 때문에 PHP/cURL을 사용하여 내 자신을 굴리며이 기능 하나만 Zend Framework를 사용하고 싶지는 않습니다.)Google 문서 도구의 첫 번째 청크를 보낸 후 503 회 반응 cURL을 사용하여 재개 가능한 업로드
것은 내가 https://developers.google.com/google-apps/documents-list/#uploading_a_new_document_or_file_with_content_only 및 https://developers.google.com/gdata/docs/resumable_upload의 지침에 따라거야, 그리고 내가 항상 서버에서 503 서비스를 사용할 수 없음 응답을받는 시점에서 두 번째 덩어리를 보내려고 할 때까지 가지 확인을 작동하는 것 같다.
1) 내가 업로드 URI에 다음과 같은 헤더와 POST를 보낼 :
여기에 일련의 이벤트입니다
Host: docs.google.com
GData-Version: 3.0
Authorization: Bearer (token removed for security reasons, but it's there and correct)
Content-Length: 0
Slug: gmk_google_upload_test.txt
X-Upload-Content-Type: text/plain
X-Upload-Content-Length: 2652
서버로 응답 : 그래서
HTTP/1.1 200 OK
Server: HTTP Upload Server Built on Jul 30 2012 11:18:04 (1343672284)
Location: https://docs.google.com/feeds/upload/create-session/default/private/full?convert=false&upload_id=AEnB2Uoa4ba2XrKG58GU3uTSzKUKsQu_NfOUvyYDqW6iXwmHgBPiJsi1fg-RhxMVT7jAfd1o73fUtBaaZ1uLkwNwzT04NxQbuQ
Date: Tue, 31 Jul 2012 16:00:13 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
멀리, 너무 좋아. 이 개시 될 수있다
HTTP/1.1 308 Resume Incomplete
Server: HTTP Upload Server Built on Jul 30 2012 11:18:04 (1343672284)
Date: Tue, 31 Jul 2012 16:00:14 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
:
Host: docs.google.com
Content-Length: 512
Content-Type: text/plain
Content-Range: bytes 0-511/2652
서버로 응답
2) I는이 헤더를 이용하여 응답에서 URL을 제 청크 (512 바이트) PUT 내 문제는, 내가 서버에서 범위 헤더를 다시 설명서에 설명 된대로받지 않습니다. 그러나 불완전한 재개 29 답변을 얻기 위해서는 뭔가가 작동해야합니다.
3) 나는 다음 청크의 (가) (I 생각하여 다음 청크) 올바른 헤더 및 범위 정보를 보낼 때 :
HTTP/1.1 503 Service Unavailable
Server: HTTP Upload Server Built on Jul 30 2012 11:18:04 (1343672284)
Date: Tue, 31 Jul 2012 16:00:14 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
: 난 항상 서버에서이 응답을
Host: docs.google.com
Content-Length: 512
Content-Type: text/plain
Content-Range: bytes 512-1023/2652
을
다른 유형의 파일, 청크 크기 등을 시도했지만 항상 동일한 결과를 얻습니다. 내가 (위의 문서 링크 당) 서버에 의해 수신 된 바이트 수를 얻기 위해 시도하는 요청을 보내는 경우 이상하게 :
PUT <upload_uri> HTTP/1.1
Host: docs.google.com
Content-Length: 0
Content-Range: bytes */100
을 나는 (예상대로) 308 이력서 불완전한 응답을 얻을 수 있지만, 여전히 Range 헤더가 없습니다. 나는 어딘가에서 어리석은 짓을하고 있다고 확신하지만, 벽을 오랫동안 두드려 본 채로는 볼 수 없다.
정확히 동일한 문제가 있지만 최신 API로 전환 할 수 없습니다. 결국이 문제를 해결할 수 있었습니까? – Robbert
이 문제가 해결 되었습니까? – ashishb