Doğrudan ve Devam Ettirilebilir Medya Yüklemeleri (original) (raw)

Doğrudan ve Devam Ettirilebilir Medya Yüklemeleri

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bu dokümanda, doğrudan ve devam ettirilebilir medya yüklemelerinin .

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:
.İsteklerin ve yanıtların istemci ile sunucu arasında nasıl hareket ettiğini gösteren sıra diyagramı.

Uygulama ayrıntıları

Öncelikli olarak ilgi alanlarıMediaHttpUploaderve MediaHttpProgressListener öğelerini destekler.

Hizmete özel oluşturulan kitaplıklardaki yöntemler mediaUpload Keşif dokümanındakiBu yöntemler için bir kolaylık yöntemi oluşturulur.InputStreamContentkullanabilirsiniz. (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öntemimediaUpload 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. Örnek:

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-betasü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);