Bu dokümanda, doğrudan ve devam ettirilebilir medya yüklemelerinin .
Devam ettirilebilir medya yükleme
Sunucuya büyük bir medya dosyası yüklediğinizde devam ettirilebilir medya yüklemeyi kullanarak parça parça gönderebilirsiniz. Google API tarafından oluşturulan kitaplıklar devam ettirilebilir medya yüklemesiyle etkileşime yönelik kolaylık yöntemleri sunar.
Devam ettirilebilir medya yükleme protokolü, devam ettirilebilir medya yükleme protokolüne benzer protokolüne (Google Drive API dokümanlarında) bakın.
Protokol tasarımı
Aşağıdaki sıra şeması, devam ettirilebilir medya yükleme protokolünün nasıl çalıştığını gösterir:
.
Uygulama ayrıntıları
Öncelikli olarak ilgi alanları MediaHttpUploader ve MediaHttpProgressListener öğelerini destekler.
Hizmete özel oluşturulan kitaplıklardaki yöntemler mediaUpload
Keşif dokümanındaki
Bu yöntemler için bir kolaylık yöntemi oluşturulur.
InputStreamContent
kullanabilirsiniz. (Google API'leriyle medya yüklemeyi kullanma hakkında daha fazla bilgi için)
Keşif Hizmeti, bkz.
Medya yüklemesi.)
Örneğin, Drive API'nin insert
yöntemi
mediaUpload
desteklenir ve dosya yüklemek için şu kodu kullanabilirsiniz:
class CustomProgressListener implements MediaHttpUploaderProgressListener { public void progressChanged(MediaHttpUploader uploader) throws IOException { switch (uploader.getUploadState()) { case INITIATION_STARTED: System.out.println("Initiation has started!"); break; case INITIATION_COMPLETE: System.out.println("Initiation is complete!"); break; case MEDIA_IN_PROGRESS: System.out.println(uploader.getProgress()); break; case MEDIA_COMPLETE: System.out.println("Upload is complete!"); } } } File mediaFile = new File("/tmp/driveFile.jpg"); InputStreamContent mediaContent = new InputStreamContent("image/jpeg", new BufferedInputStream(new FileInputStream(mediaFile))); mediaContent.setLength(mediaFile.length()); Drive.Files.Insert request = drive.files().insert(fileMetadata, mediaContent); request.getMediaHttpUploader().setProgressListener(new CustomProgressListener()); request.execute();
Ayrıca, devam ettirilebilir medya yükleme özelliğini de yardımcı olur. Bir örnek verelim:
File mediaFile = new File("/tmp/Test.jpg"); InputStreamContent mediaContent = new InputStreamContent("image/jpeg", new BufferedInputStream(new FileInputStream(mediaFile))); mediaContent.setLength(mediaFile.length());.MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, transport, httpRequestInitializer); uploader.setProgressListener(new CustomProgressListener()); HttpResponse response = uploader.upload(requestUrl); if (!response.isSuccessStatusCode()) { throw GoogleJsonResponseException(jsonFactory, response); }
Doğrudan medya yükleme
Devam ettirilebilir medya yükleme özelliği varsayılan olarak etkindir. Ancak bunu devre dışı bırakıp kullanabilirsiniz. doğrudan medya yüklemesi yapın (örneğin, küçük bir dosya yüklüyorsanız). Doğrudan medya yükleme özelliği 1.9.0-beta sürümü hakkında daha fazla bilgi edinin.
Doğrudan medya yüklemesi, bir HTTP isteğinde bulunmak yerine dosyanın tamamını devam ettirilebilir medya yükleme protokolünü kullanır. Doğrudan yükleme yapmak HTTP isteklerinin sayısını azaltır ancak büyük hasarlarla gerçekleşebilecek hata (bağlantı hataları gibi)
Doğrudan medya yükleme kullanımı, yukarıda devam ettirilebilir medya yüklemesi ve MediaHttpUploader komutunu bildiren aşağıdaki çağrı yapmak için:
mediaHttpUploader.setDirectUploadEnabled(true);