Beberapa metode API mendukung upload media selain isi biasa.
    Dalam hal ini, metode permintaan reguler kelebihan beban untuk mendapatkan
    Stream untuk diupload.
  
Ringkasan
    Untuk setiap Stream yang ingin diupload, Anda harus menggunakan resumable
    upload media, yang memungkinkan {i>stream<i} 
diupload dalam potongan yang lebih kecil.
    Ini sangat berguna jika Anda 
mentransfer file besar,
    dan kemungkinan gangguan jaringan 
atau beberapa transmisi lainnya
    tingkat kegagalannya tinggi.
    Hal ini juga dapat mengurangi penggunaan {i>bandwidth<i} Anda jika terjadi kegagalan jaringan
    karena Anda tidak perlu memulai ulang 
pengunggahan file berukuran besar dari awal.
  
ResumableMediaUpload
Upload Media yang Dapat Dilanjutkan telah menjadi fitur di library klien .NET Google API sejak versi 1.2.0-beta. Library khusus Google API berisi metode praktis untuk berinteraksi dengan fitur ini.
    Protokol upload media yang dapat dilanjutkan dijelaskan, misalnya, di
    halaman upload media untuk Drive API.
    Kelas utama yang diminati adalah
    ResumableUpload
    Dalam implementasi ini, konten media diupload dalam potongan-potongan.
  
    Ukuran {i>default<i} untuk potongan adalah 10 MB, tetapi Anda dapat mengubahnya dengan
    menyetel properti ChunkSize pada permintaan ke kelipatan 256 KB.
    Jika terjadi error server dalam permintaan, maka backoff eksponensial
    kebijakan digunakan untuk mengirim ulang 
byte yang tidak berhasil diupload.
    Secara default, backoff eksponensial diaktifkan untuk setiap permintaan klien.
    Anda dapat mengubah perilaku {i>default<i} 
saat Anda membuat
    objek layanan baru dengan mengubah
    
    Properti DefaultExponentialBackOffPolicy di BaseClientService.Initializer
    dan/atau menetapkan
    
    HttpClientInitializer
    properti ke implementasi IConfigurableHttpClientInitializer Anda sendiri
    yang menambahkan beberapa kebijakan backoff.
  
    Metode yang mendukung upload media diidentifikasi
    dalam dokumentasi referensi untuk dokumentasi khusus API.
    Untuk metode API ini, kemudahan Upload dan
    Metode UploadAsync ditambahkan.
    Metode tersebut menggunakan Stream untuk diupload dan jenis kontennya sebagai parameter.
  
Pastikan posisi streaming yang Anda upload adalah 0. Jika tidak, Anda akan menerima error, seperti "System.InvalidOperationException: Header yang diberikan tidak ditemukan".
    Perlu diperhatikan bahwa karena perilaku HttpClient framework
    jika waktu upload habis, TaskCanceledException akan ditampilkan.
    Jika Anda melihat pengecualian ini, pertimbangkan untuk meningkatkan properti Timeout secara manual di
    klien yang digunakan oleh objek layanan Anda.
  
Kode Contoh
// Create the service using the client credentials. var service = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Application_Name" }); using var uploadStream = System.IO.File.OpenRead("Local_File_Name"); // Create the File resource to upload. Google.Apis.Drive.v3.Data.File driveFile = new Google.Apis.Drive.v3.Data.File { Name = "Drive_File_Name" }; // Get the media upload request object. FilesResource.CreateMediaUpload insertRequest = service.Files.Create( driveFile, uploadStream, "image/jpeg"); // Add handlers which will be notified on progress changes and upload completion. // Notification of progress changed will be invoked when the upload was started, // on each upload chunk, and on success or failure. insertRequest.ProgressChanged += Upload_ProgressChanged; insertRequest.ResponseReceived += Upload_ResponseReceived; await insertRequest.UploadAsync(); static void Upload_ProgressChanged(IUploadProgress progress) => Console.WriteLine(progress.Status + " " + progress.BytesSent); static void Upload_ResponseReceived(Google.Apis.Drive.v3.Data.File file) => Console.WriteLine(file.Name + " was uploaded successfully");