Blobstore'umda depolanan lekeler var ve bu dosyaları Google Drive'a göndermek istiyorum. Ben Google App Engine UrlFetchService kullandığınızdaBüyük bir dosyayı (> 5 mb) Blobstore'dan Google Drive'a nasıl gönderilir?
URLFetchService fetcher = URLFetchServiceFactory.getURLFetchService();
URL url = new URL("https://www.googleapis.com/upload/drive/v1/files");
HTTPRequest httpRequest = new HTTPRequest(url, HTTPMethod.POST);
httpRequest.addHeader(new HTTPHeader("Content-Type", contentType));
httpRequest.addHeader(new HTTPHeader("Authorization", "OAuth " + accessToken));
httpRequest.setPayload(buffer.array());
Future<HTTPResponse> future = fetcher.fetchAsync(httpRequest);
try {
HTTPResponse response = (HTTPResponse) future.get();
} catch (Exception e) {
log.warning(e.getMessage());
}
Sorun: dosya 5 mb aştığında, bu UrlFetchService isteği boyutuna sınırını aşan (Bağlantı: https://developers.google.com/appengine/docs/java/urlfetch/overview#Quotas_and_Limits)
Alternatif: kullanma Bu çözüm ile
File body = new File();
body.setTitle(title);
body.setDescription(description);
body.setMimeType(mimeType);
// File's content.
java.io.File fileContent = new java.io.File(filename);
FileContent mediaContent = new FileContent(mimeType, fileContent);
File file = service.files().insert(body, mediaContent).execute();
Sorun: Google Drive API'sı Bu kodu vardır FileOutputStream, Blobstore'dan okunan byte [] öğesini yönetmek için Google App Engine'de desteklenmez.
Herhangi bir fikrin var mı?
teşekkürler. Uygulamamı, tekrar yüklenebilen yüklemeden yararlanarak güncelliyorum. Google App Engine için bu kodu yükledikten sonra alıyorum java.lang.NoSuchMethodError: com.google.api.services.drive.Drive $ Dosyalar $ Insert.getMediaHttpUploader() Lcom/google/API/istemci/googleapis/MediaHttpUploader; Biraz daha araştırmam gerek ... – Martin
Hangi versiyonda google-api-java-client var? En yeni mi? Bakın: http://code.google.com/p/google-api-java-client/ –
Teşekkürler Vic! Kullanılan tüm API kitaplıklarını güncelledikten sonra sağladığınız kod gayet iyi çalışıyor! – Martin