Doğrudan ve Devam Ettirilebilir Medya Yüklemeleri

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:
. İ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ı 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. Ö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-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);