2013-08-23 2 views
1

Приложение javascript создает файл, а затем загружает мультимедийный контент. В Chrome все очень грустно. В Firefox акция загрузки медиа каким-то образом нарушает связь между Держателем данных между файлом и моим приложением, так что значок больше не является моим иконом приложения (это синий квадрат Google по умолчанию), и нажатие на него открывает страницу с сообщением об ошибке ,Почему загрузка мультимедиа нарушает мою ассоциацию приложений (в Firefox)?

Так шаги ...

  1. Создать файл (POST к/файлам)
  2. Наблюдайте Диск, что файл существует и отображается с моим значком приложения
  3. Загрузить содержимое файла (PUT с uploadType = медиа и конвертировать = ложь)
  4. Наблюдайте в Диска иконка файла теперь Google синий

Если я делаю точно то же самое в Chrome, на шаге 4, файл по-прежнему связан с моим приложением и отображает значок моего приложения.

Вот медиа PUT от Chrome (т.е. рабочий один)

PUT https://content.googleapis.com/upload/drive/v2/files/0B6B-RNrxsCu2SERMMEFXMkdiOWM?uploadType=media&convert=false&useContentAsIndexableText=true&key=AIzaSyCt2bxTnrxo_IGvSUCBBAN_-29HJnzX_MU HTTP/1.1 
:host: content.googleapis.com 
x-origin: http://foo.myapp.appspot.com 
x-javascript-user-agent: google-api-javascript-client/1.1.0-beta 
x-goog-encode-response-if-executable: base64 
user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 
accept-language: en-US,en;q=0.8,en-AU;q=0.6 
authorization: Bearer ya29.AHES6ZQq1wAGltlEsnGKr6Dgtgkvp4zHCJsNTrXohnqrRmm3Ji8Yb14 
x-referer: http://foo.myapp.appspot.com 
x-clientdetails: appVersion=5.0%20(X11%3B%20Linux%20x86_64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F28.0.1500.95%20Safari%2F537.36&platform=Linux%20x86_64&userAgent=Mozilla%2F5.0%20(X11%3B%20Linux%20x86_64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F28.0.1500.95%20Safari%2F537.36 
referer: https://content.googleapis.com/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.l49lMhuyXyk.O%2Fm%3D__features__%2Fam%3DEQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAItRSTOvD2NxxPLz0HiGHMXTek7IhOVTHg 
content-length: 9 

:version: HTTP/1.1 
origin: https://content.googleapis.com 
accept-encoding: gzip,deflate,sdch 
:path: /upload/drive/v2/files/0B6B-RNrxsCu2SERMMEFXMkdiOWM?uploadType=media&convert=false&useContentAsIndexableText=true&key=AIzaSyCt1bxTnrxo_IGvSUCBBAN_-29HJnzX_MU 
content-type: text/html 
accept: */* 
:scheme: https 
:method: PUT 

Query String 
uploadType=media 
&convert=false 
&useContentAsIndexableText=true 
&key=AIzaSyCt2bxTnrxo_IGvSUCBBAN_-29HJnzX_MU 

и здесь СМИ PUT от Firefox (то есть. Тот, который разбивает файл ассоциации)

светлячок

PUT /upload/drive/v2/files/0B6B-RNrxsCu2UFZxbjExd0dGeTQ?uploadType=media&convert=false&useContentAsIndexableText=true&key=AIzaSyCt2bxTnrxo_IGvSUCBBAN_-29HJnzX_MU HTTP/1.1 
Host: content.googleapis.com 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Content-Type: text/html; charset=UTF-8 
Authorization: Bearer ya29.AHES6ZQrG_PQOmEZD4cBwgrjiNKNZUBc2RzAnOTmZwTJReX664MWvu8 
X-ClientDetails: appVersion=5.0%20(X11)&platform=Linux%20x86_64&userAgent=Mozilla%2F5.0%20(X11%3B%20Linux%20x86_64%3B%20rv%3A21.0)%20Gecko%2F20100101%20Firefox%2F21.0 
X-JavaScript-User-Agent: google-api-javascript-client/1.1.0-beta 
X-Origin: http://foo.myapp.appspot.com 
X-Referer: http://foo.myapp.appspot.com 
X-Goog-Encode-Response-If-Executable: base64 
Referer: https://content.googleapis.com/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.l49lMhuyXyk.O%2Fm%3D__features__%2Fam%3DEQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAItRSTOvD2NxxPLz0HiGHMXTek7IhOVTHg 
Content-Length: 12 
Connection: keep-alive 

convert false 
key AIzaSyCt2bxTnrxo_IGvSUCBBAN_-29HJnzX_MU 
uploadType media 
useContentAsIndexableText true 

Ответы ниже. Единственное различие между возвращения товара JSON в том, что версия Chrome имеет MIMETYPE "текст/html", тогда как Firefox имеет MimeType "текст/html; кодировка = UTF-8"

светлячок ответ

Content-Length 2986 
    Content-Type application/json 
    Date Sat, 24 Aug 2013 10:44:37 GMT 
    Etag "NaUPR8AuDOKgpQqXUqmAHnRC-Nk/R_dzQ2tl2e997lu1SqOGTX63YoE" 
    Server HTTP Upload Server Built on Aug 7 2013 16:51:13 (1375919473) 
    X-Firefox-Spdy 3 


"kind":"drive#file", 
"id":"0B6B-RNrxsCu2cjlldTNoV01JVHc", 
"etag":"\"NaUPR8AuDOKgpQqXUqmAHnRC-Nk/NM5C-3sulAfFZA1V-IIsA-E9_AA\"", 
"selfLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc", 
"webContentLink":"https://docs.google.com/uc?id=0B6B-RNrxsCu2cjlldTNoV01JVHc&export=download", 
"alternateLink":"https://docs.google.com/file/d/0B6B-RNrxsCu2cjlldTNoV01JVHc/edit?usp=drivesdk", 
"iconLink":"https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png", 
"thumbnailLink":"https://lh3.googleusercontent.com/1KctCx9tjxe6vSn7piLUzfYQuNKQVzMUd6Phn8dTdlHKfQlQsXi77PyOOLkwS-0q3g=s220", 
"title":"burcu", 
"mimeType":"text/html; charset=UTF-8", 
"labels":{ 
    "starred":false, 
    "hidden":false, 
    "trashed":false, 
    "restricted":false, 
    "viewed":true 
}, 
"createdDate":"2013-08-24T10:44:12.851Z", 
"modifiedDate":"2013-08-24T10:44:36.440Z", 
"modifiedByMeDate":"2013-08-24T10:44:36.440Z", 
"lastViewedByMeDate":"2013-08-24T10:44:36.440Z", 
"parents":[ 
    { 
     "kind":"drive#parentReference", 
     "id":"0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
     "selfLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/parents/0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
     "parentLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
     "isRoot":false 
    }, 
    { 
     "kind":"drive#parentReference", 
     "id":"0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
     "selfLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/parents/0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
     "parentLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
     "isRoot":false 
    } 
], 
"downloadUrl":"https://doc-0k-54-docs.googleusercontent.com/docs/securesc/i6kcvi4n5dug3hk78lqkpogagkdpecs6/krhjojomqafnrdg6943a1fhtnfjg4b8v/1377338400000/15125351317662028975/15125351317662028975/0B6B-RNrxsCu2cjlldTNoV01JVHc?h=16653014193614665626&e=download&gd=true", 
"userPermission":{ 
    "kind":"drive#permission", 
    "etag":"\"NaUPR8AuDOKgpQqXUqmAHnRC-Nk/ajH3QRzRTY6aEeYY5k2JAipDckI\"", 
    "id":"me", 
    "selfLink":"https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/permissions/me", 
    "role":"owner", 
    "type":"user" 
}, 
"originalFilename":"burcu", 
"fileExtension":"", 
"md5Checksum":"47088846bea0768b700fa76afc1e2aee", 
"fileSize":"6", 
"quotaBytesUsed":"6", 
"ownerNames":[ 
    " Demo" 
], 
"owners":[ 
    { 
     "kind":"drive#user", 
     "displayName":" Demo", 
     "isAuthenticatedUser":true, 
     "permissionId":"15125351317662028975" 
    } 
], 
"lastModifyingUserName":" Demo", 
"lastModifyingUser":{ 
    "kind":"drive#user", 
    "displayName":" Demo", 
    "isAuthenticatedUser":true, 
    "permissionId":"15125351317662028975" 
}, 
"editable":true, 
"copyable":true, 
"writersCanShare":true, 
"shared":false, 
"appDataContents":false, 
"headRevisionId":"0B6B-RNrxsCu2MWN5clphQUlBNStwM1FLTWZWS3R0RkViVkh3PQ" 

}

хром ответ

content-length: 
2977 
content-type: 
application/json 
date: 
Sat, 24 Aug 2013 10:48:29 GMT 
etag: 
"NaUPR8AuDOKgpQqXUqmAHnRC-Nk/pESqU9sAUSQgLet1Hkz2wJT0Nyw" 
server: 
HTTP Upload Server Built on Aug 7 2013 16:51:13 (1375919473) 
status: 
200 OK 
version: 
HTTP/1.1 


{ 
"kind": "drive#file", 
"id": "0B6B-RNrxsCu2cjlldTNoV01JVHc", 
"etag": "\"NaUPR8AuDOKgpQqXUqmAHnRC-Nk/7kdHmkAGWmpQ_v_pNZFbF-GLMic\"", 
"selfLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc", 
"webContentLink": "https://docs.google.com/uc?id=0B6B-RNrxsCu2cjlldTNoV01JVHc&export=download", 
"alternateLink": "https://docs.google.com/file/d/0B6B-RNrxsCu2cjlldTNoV01JVHc/edit?usp=drivesdk", 
"iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png", 
"thumbnailLink": "https://lh4.googleusercontent.com/AXTF6nVY78BZi00eTaAEwmdTfeXVC5Ny3zYEIVEPOTwPNGqy7LC9dKiqzZBg9-q3LA=s220", 
"title": "burcu", 
"mimeType": "text/html", 
"labels": { 
"starred": false, 
"hidden": false, 
"trashed": false, 
"restricted": false, 
"viewed": true 
}, 
"createdDate": "2013-08-24T10:44:12.851Z", 
"modifiedDate": "2013-08-24T10:48:27.913Z", 
"modifiedByMeDate": "2013-08-24T10:48:27.913Z", 
"lastViewedByMeDate": "2013-08-24T10:48:27.913Z", 
"parents": [ 
{ 
"kind": "drive#parentReference", 
"id": "0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
"selfLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/parents/0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
"parentLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2RVVQZ1NFWGZYUW8", 
"isRoot": false 
}, 
{ 
"kind": "drive#parentReference", 
"id": "0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
"selfLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/parents/0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
"parentLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2MFZ0dEx6a2xEQU0", 
"isRoot": false 
} 
], 
"downloadUrl": "https://doc-0k-54-docs.googleusercontent.com/docs/securesc/i6kcvi4n5dug3hk78lqkpogagkdpecs6/krhjojomqafnrdg6943a1fhtnfjg4b8v/1377338400000/15125351317662028975/15125351317662028975/0B6B-RNrxsCu2cjlldTNoV01JVHc?h=16653014193614665626&e=download&gd=true", 
"userPermission": { 
"kind": "drive#permission", 
"etag": "\"NaUPR8AuDOKgpQqXUqmAHnRC-Nk/ajH3QRzRTY6aEeYY5k2JAipDckI\"", 
"id": "me", 
"selfLink": "https://content.googleapis.com/drive/v2/files/0B6B-RNrxsCu2cjlldTNoV01JVHc/permissions/me", 
"role": "owner", 
"type": "user" 
}, 
"originalFilename": "burcu", 
"fileExtension": "", 
"md5Checksum": "423f5e2804f551616956ca8cb4a684b0", 
"fileSize": "9527", 
"quotaBytesUsed": "9527", 
"ownerNames": [ 
" Demo" 
], 
"owners": [ 
{ 
"kind": "drive#user", 
"displayName": " Demo", 
"isAuthenticatedUser": true, 
"permissionId": "15125351317662028975" 
} 
], 
"lastModifyingUserName": " Demo", 
"lastModifyingUser": { 
"kind": "drive#user", 
"displayName": " Demo", 
"isAuthenticatedUser": true, 
"permissionId": "15125351317662028975" 
}, 
"editable": true, 
"copyable": true, 
"writersCanShare": true, 
"shared": false, 
"appDataContents": false, 
"headRevisionId": "0B6B-RNrxsCu2Zmg1M0todDBPcERUREtmTjZuQjlCQjJIOUVJPQ" 
} 
+0

, чтобы добавить/подтвердить странность, если я обновляю содержимое в Chrome, ассоциация будет повторно сделана. Если я снова обновляюсь в Firefox, ассоциация снова сломается. – pinoyyid

+0

Каковы ваши органы запроса и ответы на них? –

+0

Запросы были в исходном вопросе. Я отредактировал его, чтобы включить заголовки ответов и тело. Единственное отличие в ответе - это свойство mimeType. Это похоже на заголовок Content-type соответствующих запросов. – pinoyyid

ответ

1

Я ответил на мой O wn вопрос, сказав, что это ошибка.

Подводя итог, использование GAPI Javascript-клиента с Firefox для обновления содержимого приводит к тому, что mime-type на Диске будет включать набор символов (например, «text/html; charset = UTF-8»). Поскольку это не соответствует типу mime, объявленному в API-консоли («text/html»), Drive Webapp не связывает файл с моим приложением.

Исправлена ​​ошибка может считаться одним из трех мест: -

  1. Это может быть GAPI JS клиент ошибка, что он устанавливает заголовок типа содержимого, чтобы быть «текст/html; Charset = UTF-8" .
  2. Это может быть ошибка в драйвере SDK, поэтому тип файла mime всегда должен быть тем, который я явно объявлял при создании файла, и должен игнорировать заголовок типа mime для любых загрузок мультимедиа. Или можно считать, что SDK накопителя должен лишить набор символов из заголовка содержимого, прежде чем использовать его для установки типа mime в файле.
  3. Это может быть ошибка веб-браузера Drive, что он должен учитывать «text/html» и «text/html; charset = UTF-8», чтобы быть одним и тем же типом mime.
Смежные вопросы