Topik ini menjelaskan cara menggunakan operasi File-Like yang disediakan oleh Object Storage Service (OSS) SDK untuk Go 2.0 guna mengakses objek dalam sebuah bucket.
Catatan
Kode contoh dalam topik ini menggunakan ID Wilayah China (Hangzhou),
cn-hangzhou, sebagai contoh. Titik akhir publik digunakan secara default. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.
Untuk mengunduh file, Anda harus memiliki izin
oss:GetObject. Untuk informasi lebih lanjut, lihat Berikan Izin Kustom kepada Pengguna RAM.
Metode
Operasi File-Like yang disediakan oleh OSS SDK untuk Go 2.0 memungkinkan Anda mengakses objek dalam bucket menggunakan metode ReadOnlyFile.
Metode ReadOnlyFile menyediakan mode aliran tunggal dan pramuat. Anda dapat menyesuaikan jumlah tugas paralel untuk meningkatkan kecepatan baca.
Metode ReadOnlyFile menyediakan mekanisme penyambungan ulang, yang menawarkan ketahanan kuat dalam lingkungan jaringan yang kompleks.
type ReadOnlyFile struct {
...
}
func (c *Client) OpenFile(ctx context.Context, bucket string, key string, optFns ...func(*OpenOptions)) (file *ReadOnlyFile, err error)Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan. |
bucket | string | Nama bucket. |
key | string | Nama objek. |
optFns | ...func(*OpenOptions) | Opsional. Opsi yang dapat Anda konfigurasikan saat membuka objek. |
Opsi OpenOptions
Opsi | Tipe | Deskripsi |
Offset | int64 | Ofset awal saat objek dibuka. Nilai default: 0. |
VersionId | *string | Nomor versi objek yang ditentukan. Parameter ini hanya valid jika ada beberapa versi objek. |
RequestPayer | *string | Menentukan bahwa jika pay-by-requester diaktifkan, RequestPayer harus diatur ke requester. |
EnablePrefetch | bool | Menentukan apakah akan mengaktifkan mode pramuat. Secara default, mode pramuat dinonaktifkan. |
PrefetchNum | int | Jumlah chunk yang dipramuat. Nilai default: 3. Parameter ini valid saat mode pramuat diaktifkan. |
ChunkSize | int64 | Ukuran setiap chunk yang dipramuat. Nilai default: 6 MiB. Parameter ini valid saat mode pramuat diaktifkan. |
PrefetchThreshold | int64 | Jumlah byte yang akan dibaca secara berurutan sebelum mode pramuat diaktifkan. Nilai default: 20 MiB. Parameter ini valid saat mode pramuat diaktifkan. |
Parameter respons
Parameter | Tipe | Deskripsi |
file | *ReadOnlyFile | Instansi ReadOnlyFile. Parameter ini valid saat nilai err adalah nil. Untuk informasi lebih lanjut, lihat ReadOnlyFile. |
err | error | Status ReadOnlyFile. Jika terjadi kesalahan, nilai err tidak bisa nil. |
Metode umum ReadOnlyFile
Metode | Deskripsi |
Close() error | Menutup pegangan file untuk melepaskan sumber daya, seperti memori dan soket aktif. |
Read(p []byte) (int, error) | Membaca byte dengan panjang len(p) dari sumber data, menyimpan byte tersebut di p, dan mengembalikan jumlah byte yang dibaca serta kesalahan yang ditemui. |
Seek(offset int64, whence int) (int64, error) | Menentukan ofset untuk pembacaan atau penulisan berikutnya. Nilai valid untuk whence: 0: kepala. 1: ofset saat ini. 2: ekor. |
Stat() (os.FileInfo, error) | Meminta informasi objek, termasuk ukuran objek, waktu modifikasi terakhir, dan metadata. |
Catatan: Jika mode pramuat diaktifkan dan terjadi beberapa pembacaan di luar urutan, mode aliran tunggal digunakan secara otomatis.
Contoh
Referensi
Untuk informasi lebih lanjut tentang file kelas baca-saja, lihat Panduan Pengembang.
Untuk kode contoh lengkap File-Like, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API File-Like, kunjungi OpenFile.