All Products
Search
Document Center

Object Storage Service:Unggah yang dapat dilanjutkan (OSS SDK untuk C# 1.0)

Last Updated:Sep 03, 2026

Saat mengunggah objek ke Object Storage Service (OSS) menggunakan unggah yang dapat dilanjutkan, Anda dapat menentukan direktori untuk file checkpoint yang menyimpan progres unggahan. Jika pengunggahan gagal akibat pengecualian jaringan atau kesalahan program, tugas unggah dilanjutkan dari posisi yang tercatat dalam file checkpoint.

Progres unggahan direkam dalam file checkpoint selama proses berlangsung. Jika suatu bagian gagal diunggah, unggahan berikutnya dimulai dari posisi yang telah direkam dalam file tersebut. File checkpoint akan dihapus setelah tugas unggah yang dapat dilanjutkan selesai.

Catatan

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

  • Topik ini menunjukkan cara membuat instans OSSClient dengan titik akhir OSS. Untuk konfigurasi alternatif, seperti penggunaan domain kustom atau otentikasi menggunakan kredensial dari Security Token Service (STS), lihat Inisialisasi (C# SDK V1).

  • Untuk menggunakan unggah yang dapat dilanjutkan, Anda harus memiliki izin oss:PutObject. Untuk informasi selengkapnya, lihat Memberikan kebijakan kustom.

  • OSS SDK tidak melakukan inspeksi keamanan atau tinjauan konten terhadap isi file yang diunggah. Jika unggah gagal, kegagalan tersebut tidak terkait dengan konten file.

Kode contoh

Kode contoh berikut menunjukkan cara melakukan unggah yang dapat dilanjutkan:

using Aliyun.OSS;
using Aliyun.OSS.Common;

// Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Contoh: examplebucket.
var bucketName = "examplebucket";
// Tentukan path lengkap objek. Jangan sertakan nama bucket dalam path lengkap. Contoh: exampledir/exampleobject.txt.
var objectName = "exampledir/exampleobject.txt";
// Tentukan path lengkap file lokal yang ingin Anda unggah. Contoh: D:\\localpath\\examplefile.txt.
// Secara default, jika Anda hanya menentukan nama file lokal seperti examplefile.txt tanpa menyertakan path lokal, file lokal akan diunggah dari path proyek tempat program contoh berada.
var localFilename = "D:\\localpath\\examplefile.txt";
// Tentukan file checkpoint. File checkpoint menyimpan informasi mengenai progres unggah.
string checkpointDir = "yourCheckpointDir";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan Anda.
var conf = new ClientConfiguration();

// Gunakan algoritma signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Konfigurasikan parameter menggunakan UploadFileRequest.
    UploadObjectRequest request = new UploadObjectRequest(bucketName, objectName, localFilename)
    {
        // Tentukan ukuran setiap bagian.
        PartSize = 8 * 1024 * 1024,
        // Tentukan jumlah thread konkuren.
        ParallelThreadCount = 3,
        // Tentukan parameter checkpointDir untuk menyimpan status tugas unggah yang dapat dilanjutkan, yang digunakan untuk melanjutkan tugas unggah jika tugas tersebut gagal.
        // Jika Anda mengatur checkpointDir ke null, unggah yang dapat dilanjutkan tidak berlaku dan objek akan diunggah ulang jika pengunggahan gagal.
        CheckpointDir = checkpointDir,
    };
    // Mulai unggah yang dapat dilanjutkan.
    client.ResumableUploadObject(request);
    Console.WriteLine("Unggah yang dapat dilanjutkan objek:{0} berhasil", objectName);
}
catch (OssException ex)
{
    Console.WriteLine("Gagal dengan kode kesalahan: {0}; Info kesalahan: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Gagal dengan info kesalahan: {0}", ex.Message);
}

Referensi

Untuk kode contoh lengkap mengenai unggah yang dapat dilanjutkan, kunjungi GitHub.