Niedawno doświadczyłem dwóch problemów z przesyłaniem plików do mojej aplikacji Java gae. Używam tecnique opisanego w blobstore doc.503 i 400 na przesyłanie obrazów w Google App Engine
- W przypadku zwykłych plików, czasami (powiedzmy 15% razy) klient otrzymuje usługę "503 Service Unavailable".
- W przypadku obrazów o wysokiej rozdzielczości (przykład 7000x10000) klient zawsze otrzymuje "400 nieprawidłowych żądań".
W obu przypadkach na serwerze nie są rejestrowane żadne komunikaty o błędach, obiekty typu blob są zapisywane poprawnie, ale adres URL successPath (wywołanie zwrotne z createUploadUrl) nigdy nie jest wywoływany. Wygląda na to, że punkt końcowy GAE obsługujący wysyłanie kończy się z jakiegoś powodu.
Mój klient to XMLHttpRequest js, owinięte w GWT:
public native void uploadWithXMLHttpRequest(UploadForm uploadForm) /*-{
var fd = new FormData();
var files = [email protected]::getFiles()();
for (var i = 0; i < files.length; i++) {
fd.append("uploadFile"+i, files[i]);
}
var xhr = new XMLHttpRequest();
//xhr.upload.addEventListeners... omitted
xhr.open("POST", [email protected]::getUploadUrl()());
xhr.send(fd);
}
jakieś pomysły dotyczące możliwych przyczyn i rozwiązań/obejścia? Thx.
Pokaż nam kod! Zwłaszcza, że używasz javascript do wysyłania twoich plików. –
Wyślij mi identyfikator aplikacji i klucz typu "blob" obiektu typu blob, który Twoim zdaniem został przesłany poprawnie, ale Twój URL sukcesu nie został wywołany. –
Identyfikator aplikacji: maptoapp. 400 kluczowych blob (400 Odpowiedzi dzieje podczas przesyłania wysokiej rozdzielczości zdjęcia): AMIfv96gQvVD3xPl8IAUBZHwESNBAeeyZbxYWJD2BaxI688GkwNJXR6Lg7yx7pX8efb16YskBE7ZUVGYuUkXwSSXJ3uko6OnGKO79EuC-LupVC_gG2CaajOMBhJcQctXzsjI_MPu16ZdorDkGp-uK7c4o6BYqHxlXw 503 kluczowych blob (503 Odpowiedzi dzieje się niby przypadkowo.z tym samym pic zwykle działa poprawnie): AMIfv957XZKBtl5C9RB19nntlrUi4bGfY8EPE8Rfidik0dlD5jPmeGgcLyqc2ye9WICIy063ZMoZRGIQkbVpCTM4EL7dUFzazWz2Irsn14iLKx2uBrJyYhl0qsrvRWxVa_KpMS6BGiH0N1c66XGPlkqoCo9jXPcBsg upload oba pliki teraz. – bebo