Topik ini menjelaskan cara memeriksa keberadaan suatu file.
Catatan penggunaan
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 Regions and endpoints.
Pada topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Configure access credentials.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Configure a client (Go SDK V1).
Anda harus memiliki izin
oss:GetObjectuntuk menentukan apakah suatu objek ada. Untuk informasi selengkapnya, lihat Attach a custom policy to a RAM user.
Kode contoh
Kode contoh berikut menunjukkan cara memeriksa keberadaan suatu file.
package main
import (
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// Buat instans OSSClient.
// Setel yourEndpoint ke Endpoint bucket. Misalnya, untuk bucket di wilayah China (Hangzhou), setel nilainya ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, sesuaikan nilainya.
// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, untuk bucket di wilayah China (Hangzhou), setel nilainya ke cn-hangzhou. Untuk wilayah lain, sesuaikan nilainya.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Setel versi signature.
clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
client, err := oss.New("yourEndpoint", "", "", clientOptions...)
if err != nil {
log.Fatalf("Failed to create OSS client: %v", err)
}
// Setel yourBucketName ke nama bucket.
bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
bucket, err := client.Bucket(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket: %v", err)
}
// Periksa apakah file ada.
// Setel yourObjectName ke path lengkap objek. Jangan sertakan nama bucket.
objectName := "yourObjectName" // Ganti dengan path objek yang sebenarnya.
isExist, err := bucket.IsObjectExist(objectName)
if err != nil {
log.Fatalf("Failed to check if object exists: %v", err)
}
log.Printf("Exist: %t\n", isExist)
}
Referensi
Untuk informasi selengkapnya mengenai operasi API untuk memeriksa keberadaan suatu file, lihat IsObjectExist.