Topik ini menjelaskan cara meningkatkan Object Storage Service (OSS) SDK untuk Go dari V1 ke V2.
Versi terawal untuk Go
OSS SDK untuk Go V2 memerlukan versi Go 1.18 atau yang lebih baru.
Tentukan jalur impor
OSS SDK untuk Go V2 menggunakan repositori kode baru, alibabacloud-oss-go-sdk-v2. Struktur kode diubah dan diorganisir berdasarkan modul fungsional. Tabel berikut menjelaskan jalur dan deskripsi dari modul fungsional.
Jalur Modul | Deskripsi |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss | Inti dari OSS SDK untuk Go, yang digunakan untuk memanggil operasi API dasar dan lanjutan. |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials | Kredensial akses. |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/retry | Kebijakan ulang. |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/signer | Tanda tangan. |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/transport | Klien HTTP. |
github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/crypto | Konfigurasi enkripsi sisi klien. |
Contoh OSS SDK untuk Go V1
Contoh OSS SDK untuk Go V2
Konfigurasikan parameter
OSS SDK untuk Go V2 menyederhanakan konfigurasi dengan mengimpor konfigurasi ke config. OSS SDK untuk Go V2 juga menyediakan fungsi pembantu dengan awalan With untuk memfasilitasi penimpaan programatik konfigurasi default.
OSS SDK untuk Go V2 menggunakan tanda tangan V4 secara default. Dalam hal ini, Anda harus menentukan wilayah.
OSS SDK untuk Go V2 memungkinkan Anda membuat titik akhir berdasarkan informasi wilayah. Jika Anda mengakses sumber daya di cloud publik, Anda tidak perlu membuat titik akhir.
Contoh OSS SDK untuk Go V1
Contoh OSS SDK untuk Go V2
Buat klien
Dalam OSS SDK untuk Go V2, fungsi pembuatan klien diubah dari New menjadi NewClient. Selain itu, fungsi pembuatan klien tidak lagi mendukung parameter titik akhir, ak, dan sk.
Contoh OSS SDK untuk Go V1
Contoh OSS SDK untuk Go V2
Panggil operasi API
Operasi API dasar digabungkan ke dalam metode operasi tunggal dalam format <NamaOperasi>, parameter permintaan suatu operasi digabungkan ke dalam <NamaOperasi>Permintaan, dan parameter respons suatu operasi digabungkan ke dalam <NamaOperasi>Hasil. Metode operasi diimpor ke Client, dan context.Context perlu ditentukan pada saat yang sama. Sintaks:
func (c *Client) <NamaOperasi>(ctx context.Context, request *<NamaOperasi>Permintaan, optFns ...func(*Options)) (*<NamaOperasi>Hasil,, error)Untuk informasi lebih lanjut, lihat Operasi API Dasar.
Contoh OSS SDK untuk Go V1
Contoh OSS SDK untuk Go V2
Hasilkan URL pra-tandatangani
Dalam OSS SDK untuk Go V2, nama operasi yang digunakan untuk menghasilkan URL pra-tandatangani diubah dari SignURL menjadi Presign, dan operasi tersebut diimpor ke Client. Sintaks:
func (c *Client) Presign(ctx context.Context, request any, optFns ...func(*PresignOptions)) (*PresignResult, error)Tipe parameter request sama dengan '<NamaOperasi>Permintaan' dalam operasi API.
Respons berisi URL pra-tandatangani, metode HTTP, waktu kedaluwarsa URL, dan header permintaan yang ditandatangani. Contoh:
type PresignResult struct {
Method string
URL string
Expiration time.Time
SignedHeaders map[string]string
}Untuk informasi lebih lanjut, lihat URL Pra-tandatangani.
Kode contoh berikut memberikan contoh migrasi objek dari OSS SDK untuk Go V1 ke OSS SDK untuk Go V2 dengan menghasilkan URL pra-tandatangani yang digunakan untuk mengunduh objek:
Contoh OSS SDK untuk Go V1
Contoh OSS SDK untuk Go V2
Panggil operasi transfer yang dapat dilanjutkan
OSS SDK untuk Go V2 menggunakan manajer transmisi data, termasuk Uploader, Downloader, dan Copier, untuk mengelola pengunggahan, pengunduhan, dan penyalinan objek masing-masing. Operasi transfer yang dapat dilanjutkan asli (Bucket.UploadFile, Bucket.DownloadFile, dan Bucket.CopyFile) dihapus.
Tabel berikut menjelaskan operasi transfer yang dapat dilanjutkan dalam OSS SDK untuk Go V1 dan OSS SDK untuk Go V2.
Skenario | v2 | v1 |
Unggah objek | Uploader.UploadFile | Bucket.UploadFile |
Unggah aliran (io.Reader) | Uploader.UploadFrom | Tidak didukung |
Unduh objek ke komputer lokal | Downloader.DownloadFile | Bucket.DownloadFile |
Salin objek | Copier.Copy | Bucket.CopyFile |
Perubahan Nilai Default
Skenario | v2 | v1 |
Ukuran bagian unggah objek | 6 MiB | Konfigurasikan ukuran bagian dengan menentukan parameter |
Nilai default konkurensi unggah objek | 3 | 1 |
Ambang batas ukuran unggah objek | Ukuran bagian | Tidak ada |
Catat kemajuan unggah objek dalam file checkpoint | Didukung | Didukung |
Ukuran bagian unduhan objek | 6 MiB | Konfigurasikan ukuran bagian dengan menentukan parameter |
Nilai default konkurensi unduhan objek | 3 | 1 |
Ambang batas ukuran unduhan objek | Ukuran bagian | Tidak ada |
Catat kemajuan unduhan objek dalam file checkpoint | Didukung | Didukung |
Ukuran bagian salinan objek | 64 MiB | Bucket.UploadFile |
Nilai default konkurensi salinan objek | 3 | 1 |
Ambang batas ukuran salinan objek | 200 MiB | Tidak ada |
Catat kemajuan salinan objek dalam file checkpoint | Tidak didukung | Didukung |
Parameter ambang batas ukuran unggah objek, ambang batas ukuran unduhan objek, atau ambang batas ukuran salinan objek yang tercantum di atas menentukan bahwa ketika ukuran objek lebih besar dari nilai parameter, unggah multipart, unduhan multipart, atau salinan multipart, masing-masing, dilakukan.
Untuk informasi lebih lanjut tentang cara menggunakan manajer transmisi data, lihat Manajer Transmisi.
Lakukan enkripsi sisi klien
OSS SDK untuk Go V2 menggunakan EncryptionClient untuk menyediakan enkripsi sisi klien. OSS SDK untuk Go V2 juga menyederhanakan operasi API yang digunakan untuk melakukan enkripsi sisi klien dan mengadopsi aturan penamaan operasi dan metode pemanggilan yang sama dengan Client. Selain itu, OSS SDK untuk Go V2 hanya memberikan referensi tentang cara melakukan enkripsi sisi klien dengan menggunakan CMK berbasis RSA yang dikelola sendiri.
Untuk informasi lebih lanjut tentang cara melakukan enkripsi sisi klien dengan menggunakan Key Management Service (KMS), kunjungi sample/crypto/kms.go.
Untuk informasi lebih lanjut tentang enkripsi sisi klien, lihat Enkripsi Sisi Klien.
Kode contoh berikut memberikan contoh penggunaan CMK berbasis RSA untuk melakukan enkripsi sisi klien ketika Anda mengunggah objek menggunakan OSS SDK untuk Go V1 dan OSS SDK untuk Go V2:
V1
V2
Konfigurasikan kebijakan ulang
Secara default, OSS SDK untuk Go V2 mendukung ulang untuk permintaan HTTP. Saat Anda meningkatkan OSS SDK untuk Go V1 ke OSS SDK untuk Go V2, Anda harus menghapus kode ulang asli untuk mencegah peningkatan jumlah ulang.
Referensi
Untuk informasi lebih lanjut, lihat Panduan Pengembang.