All Products
Search
Document Center

Object Storage Service:Daftar objek (Go SDK V1)

Last Updated:Nov 29, 2025

Topik ini menjelaskan cara mendaftar semua objek, objek dengan awalan tertentu, serta objek dan subdirektori dalam direktori tertentu di bucket Object Storage Service (OSS).

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 Wilayah dan titik akhir.

  • Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi selengkapnya mengenai cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.

  • Instans OSSClient pada topik ini dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Konfigurasi klien (Go SDK V1).

  • Untuk mendaftar objek, Anda harus memiliki izin oss:ListObjects. Untuk informasi selengkapnya, lihat Berikan izin kustom kepada RAM user.

  • OSS SDK untuk Go versi 2.2.5 dan yang lebih baru mendukung pengembalian informasi RestoreInfo.

Informasi latar belakang

Anda dapat memanggil operasi ListObjectsV2 atau ListObjects untuk mendaftar hingga 1.000 objek dalam satu bucket sekaligus. Dengan menentukan parameter yang berbeda, Anda dapat menerapkan berbagai fitur pendaftaran, seperti mendaftar semua objek setelah posisi awal tertentu, mendaftar objek dan subdirektori dalam direktori tertentu, serta melakukan paginasi pada hasil pendaftaran. Perbedaan utama antara kedua operasi tersebut adalah sebagai berikut:

  • Saat menggunakan operasi ListObjectsV2fetchOwner untuk menentukan apakah informasi Pemilik objek disertakan dalam hasil.

  • Saat Anda menggunakan operasi ListObjects, informasi Pemilik dari objek-objek tersebut disertakan dalam hasil secara default.

    Catatan

    Untuk bucket yang telah mengaktifkan Pengendalian versi, Anda harus menggunakan operasi ListObjectsV2 untuk mendaftar objek.

Bagian berikut menjelaskan parameter untuk mendaftar objek menggunakan metode ListObjectsV2 dan ListObjects.

ListObjectsV2

Tabel berikut menjelaskan parameter untuk mendaftar objek menggunakan metode ListObjectsV2.

Parameter

Deskripsi

prefix

Awalan yang harus dimiliki oleh nama objek yang dikembalikan.

delimiter

Karakter untuk mengelompokkan nama objek. Semua nama objek yang memiliki string yang sama dari awalan hingga kemunculan pertama delimiter dikelompokkan sebagai satu elemen (commonPrefixes).

startAfter

Titik awal untuk operasi pendaftaran ini.

fetchOwner

Menentukan apakah informasi Pemilik disertakan dalam hasil.

  • true: Informasi Pemilik disertakan dalam hasil.

  • false: Informasi Pemilik tidak disertakan dalam hasil.

Untuk informasi selengkapnya, lihat ListObjectsV2.

ListObjects

Tabel berikut menjelaskan parameter untuk mendaftar objek menggunakan metode ListObjects.

Parameter

Deskripsi

delimiter

Karakter untuk mengelompokkan nama objek. Semua nama objek yang memiliki string yang sama dari awalan hingga kemunculan pertama delimiter dikelompokkan sebagai satu elemen (commonPrefixes).

prefix

Awalan yang harus dimiliki oleh nama objek yang dikembalikan.

maxKeys

Jumlah maksimum objek yang dikembalikan. Nilai default adalah 100. Nilai maksimum adalah 1000.

marker

Titik awal untuk operasi pendaftaran ini.

Untuk informasi selengkapnya, lihat ListObjects.

Contoh

ListObjectsV2

Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar 100 objek dalam sebuah bucket.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Token kelanjutan awal.
	continueToken := ""

	for {
		// Daftar semua objek.
		lsRes, err := bucket.ListObjectsV2(oss.ContinuationToken(continueToken))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika masih ada objek yang perlu didaftar, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.NextContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

ListObjects

Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar 100 objek dalam sebuah bucket.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar semua objek.
	marker := ""
	for {
		lsRes, err := bucket.ListObjects(oss.Marker(marker))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		for _, object := range lsRes.Objects {
			log.Printf("Object Name: %s\n", object.Key)
		}

		// Jika masih ada objek yang perlu didaftar, perbarui marker dan lanjutkan loop.
		if lsRes.IsTruncated {
			marker = lsRes.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

Skenario umum

Mendaftar jumlah objek tertentu

ListObjectsV2

Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar jumlah objek tertentu.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Atur MaxKeys untuk menentukan jumlah maksimum objek yang akan didaftar, lalu daftar objek tersebut.
	maxKeys := 200
	continueToken := ""

	for {
		lsRes, err := bucket.ListObjectsV2(oss.MaxKeys(maxKeys), oss.StartAfter(continueToken))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s, Owner ID: %s, Owner DisplayName: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass, object.Owner.ID, object.Owner.DisplayName)
		}

		// Jika masih ada objek yang perlu didaftar, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.ContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

ListObjects

Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar jumlah objek tertentu.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Atur jumlah maksimum objek yang akan didaftar, lalu daftar objek tersebut.
	maxKeys := 200
	lsRes, err := bucket.ListObjects(oss.MaxKeys(maxKeys))
	if err != nil {
		log.Fatalf("Gagal mendaftar objek: %v", err)
	}

	// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
	log.Printf("Ditemukan %d objek:\n", len(lsRes.Objects))
	for _, object := range lsRes.Objects {
		log.Printf("Object: %s\n", object.Key)
	}

	if lsRes.IsTruncated {
		log.Printf("Masih ada objek lain. NextMarker: %s\n", lsRes.NextMarker)
	} else {
		log.Println("Semua objek telah didaftar.")
	}
}

Mendaftar objek dengan awalan tertentu

ListObjectsV2

Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar objek dengan awalan tertentu.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Atur parameter Prefix untuk mendaftar objek yang namanya diawali dengan my-object-.
	prefix := "my-object-"
	lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix))
	if err != nil {
		log.Fatalf("Gagal mendaftar objek: %v", err)
	}

	// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
	log.Printf("Ditemukan %d objek dengan awalan '%s':\n", len(lsRes.Objects), prefix)
	for _, object := range lsRes.Objects {
		log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s, Owner ID: %s, Owner DisplayName: %s\n",
			object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass, object.Owner.ID, object.Owner.DisplayName)
	}

	if lsRes.IsTruncated {
		log.Printf("Masih ada objek lain. Next Continuation Token: %s\n", lsRes.NextContinuationToken)
	} else {
		log.Println("Semua objek telah didaftar.")
	}
}

ListObjects

Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar objek dengan awalan tertentu.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar objek dengan awalan yang ditentukan. Secara default, 100 objek didaftar.
	prefix := "my-object-"
	lsRes, err := bucket.ListObjects(oss.Prefix(prefix))
	if err != nil {
		log.Fatalf("Gagal mendaftar objek: %v", err)
	}

	// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
	log.Printf("Ditemukan %d objek dengan awalan '%s':\n", len(lsRes.Objects), prefix)
	for _, object := range lsRes.Objects {
		log.Printf("Object Key: %s\n", object.Key)
	}

	if lsRes.IsTruncated {
		log.Printf("Masih ada objek lain. Next Marker: %s\n", lsRes.NextMarker)
	} else {
		log.Println("Semua objek telah didaftar.")
	}
}

Mendaftar objek setelah titik awal tertentu

ListObjectsV2

Anda dapat mengatur parameter StartAfter untuk menentukan titik awal pendaftaran. Semua objek yang berada dalam urutan leksikografis setelah nilai StartAfter akan dikembalikan.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Tentukan untuk mendaftar objek setelah StartAfter. Secara default, 100 objek didaftar.
	startAfter := "my-object-"
	lsRes, err := bucket.ListObjectsV2(oss.StartAfter(startAfter))
	if err != nil {
		log.Fatalf("Gagal mendaftar objek: %v", err)
	}

	// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
	log.Printf("Ditemukan %d objek yang dimulai setelah '%s':\n", len(lsRes.Objects), startAfter)
	for _, object := range lsRes.Objects {
		log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s, Owner ID: %s, Owner DisplayName: %s\n",
			object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass, object.Owner.ID, object.Owner.DisplayName)
	}

	if lsRes.IsTruncated {
		log.Printf("Masih ada objek lain. Next Continuation Token: %s\n", lsRes.NextContinuationToken)
	} else {
		log.Println("Semua objek telah didaftar.")
	}
}

ListObjects

Anda dapat mengatur parameter Marker untuk menentukan titik awal pendaftaran. Semua objek yang berada dalam urutan leksikografis setelah nilai Marker akan dikembalikan.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Inisialisasi marker.
	marker := ""

	// Loop untuk mendaftar semua objek.
	for {
		lsRes, err := bucket.ListObjects(oss.Marker(marker))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		log.Printf("Ditemukan %d objek:\n", len(lsRes.Objects))
		for _, object := range lsRes.Objects {
			log.Printf("Object: %s\n", object.Key)
		}

		// Jika hasil terpotong, perbarui marker dan lanjutkan loop.
		if lsRes.IsTruncated {
			marker = lsRes.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

Mendaftar semua objek per halaman

ListObjectsV2

Anda dapat menggunakan metode ListObjectsV2 untuk mendaftar semua objek dalam bucket secara per halaman. Anda dapat mengatur MaxKeys untuk menentukan jumlah objek yang didaftar pada setiap halaman.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar semua objek per halaman. Daftar 100 objek per halaman.
	continueToken := ""
	for {
		lsRes, err := bucket.ListObjectsV2(oss.MaxKeys(100), oss.ContinuationToken(continueToken))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		log.Printf("Ditemukan %d objek:\n", len(lsRes.Objects))
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.NextContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

ListObjects

Anda dapat menggunakan metode ListObjects untuk mendaftar semua objek dalam bucket secara per halaman. Anda dapat mengatur MaxKeys untuk menentukan jumlah objek yang didaftar pada setiap halaman.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar semua objek per halaman. Daftar 100 objek per halaman.
	marker := ""
	for {
		lsRes, err := bucket.ListObjects(oss.MaxKeys(100), oss.Marker(marker))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		log.Printf("Ditemukan %d objek:\n", len(lsRes.Objects))
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			marker = lsRes.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

Mendaftar objek dengan awalan tertentu per halaman

ListObjectsV2

Anda dapat menggunakan metode ListObjectsV2 untuk mendaftar objek dengan awalan tertentu secara per halaman. Anda dapat mengatur MaxKeys untuk menentukan jumlah objek yang didaftar pada setiap halaman.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar objek dengan awalan tertentu per halaman. Daftar 80 objek per halaman.
	prefix := "my-object-"
	continueToken := ""
	for {
		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.MaxKeys(80), oss.ContinuationToken(continueToken))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		log.Printf("Ditemukan %d objek dengan awalan '%s':\n", len(lsRes.Objects), prefix)
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.NextContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

ListObjects

Anda dapat menggunakan metode ListObjects untuk mendaftar objek dengan awalan tertentu secara per halaman. Anda dapat mengatur MaxKeys untuk menentukan jumlah objek yang didaftar pada setiap halaman.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar objek dengan awalan yang ditentukan per halaman. Daftar 80 objek per halaman.
	prefix := "my-object-"
	marker := ""
	for {
		lsRes, err := bucket.ListObjects(oss.MaxKeys(80), oss.Marker(marker), oss.Prefix(prefix))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
		log.Printf("Ditemukan %d objek dengan awalan '%s':\n", len(lsRes.Objects), prefix)
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui marker dan lanjutkan loop.
		if lsRes.IsTruncated {
			marker = lsRes.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

Mendaftar informasi semua objek dalam direktori tertentu

ListObjectsV2

Anda dapat menggunakan metode ListObjectsV2 untuk mendaftar informasi semua objek dalam direktori tertentu (awalan), termasuk ukuran objek, waktu modifikasi terakhir, dan nama objek.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar objek dengan awalan yang ditentukan per halaman. Secara default, 100 catatan dikembalikan sekaligus.
	continueToken := ""
	prefix := "fun"
	for {
		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.ContinuationToken(continueToken))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya.
		for _, object := range lsRes.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.NextContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

ListObjects

Anda dapat menggunakan metode ListObjects untuk mendaftar informasi semua objek dalam direktori tertentu (awalan), termasuk ukuran objek, waktu modifikasi terakhir, dan nama objek.

package main

import (
	"log"
	"time"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Telusuri objek.
	marker := ""
	prefix := "test"
	for {
		lor, err := bucket.ListObjects(oss.Marker(marker), oss.Prefix(prefix))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya.
		for _, object := range lor.Objects {
			log.Printf("Object Key: %s, Type: %s, Size: %d, ETag: %s, LastModified: %s, StorageClass: %s\n",
				object.Key, object.Type, object.Size, object.ETag, object.LastModified.Format(time.RFC3339), object.StorageClass)
		}

		// Jika hasil terpotong, perbarui marker dan lanjutkan loop.
		if lor.IsTruncated {
			marker = lor.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua objek telah didaftar.")
}

Mendaftar informasi semua subdirektori dalam direktori tertentu

ListObjectsV2

Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar informasi semua subdirektori dalam direktori tertentu (awalan).

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar folder dengan awalan yang ditentukan per halaman. Secara default, 100 catatan dikembalikan sekaligus.
	continueToken := ""
	prefix := ""
	for {
		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.ContinuationToken(continueToken), oss.Delimiter("/"))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya.
		for _, dirName := range lsRes.CommonPrefixes {
			log.Println("Directory Name:", dirName)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lsRes.IsTruncated {
			continueToken = lsRes.NextContinuationToken
		} else {
			break
		}
	}

	log.Println("Semua direktori telah didaftar.")
}

ListObjects

Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar informasi semua subdirektori dalam direktori tertentu (awalan).

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Daftar folder dengan awalan yang ditentukan per halaman. Secara default, 100 catatan dikembalikan sekaligus.
	marker := ""
	prefix := "yourDirPrefix" // Ganti dengan awalan yang sebenarnya.
	for {
		lor, err := bucket.ListObjects(oss.Marker(marker), oss.Prefix(prefix), oss.Delimiter("/"))
		if err != nil {
			log.Fatalf("Gagal mendaftar objek: %v", err)
		}

		// Cetak hasilnya.
		for _, dirName := range lor.CommonPrefixes {
			log.Println("Directory Name:", dirName)
		}

		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
		if lor.IsTruncated {
			marker = lor.NextMarker
		} else {
			break
		}
	}

	log.Println("Semua direktori telah didaftar.")
}

Mendaftar objek dan mengembalikan informasi Pemilik

Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar objek dan mengembalikan informasi Pemiliknya.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Tentukan nama bucket.
	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket: %v", err)
	}

	// Peroleh informasi Pemilik dan daftar objek tersebut.
	lsRes, err := bucket.ListObjectsV2(oss.FetchOwner(true))
	if err != nil {
		log.Fatalf("Gagal mendaftar objek dengan informasi pemilik: %v", err)
	}

	// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
	for _, object := range lsRes.Objects {
		log.Printf("Object Key: %s, Owner ID: %s, Display Name: %s\n",
			object.Key, object.Owner.ID, object.Owner.DisplayName)
	}

	log.Println("Semua objek telah didaftar.")
}

Folder

OSS menggunakan struktur datar untuk menyimpan objek. Semua elemen disimpan sebagai objek. Membuat folder sama dengan membuat objek berukuran nol byte yang diakhiri dengan garis miring (/). Konsol OSS menampilkan objek yang namanya diakhiri dengan garis miring (/) sebagai folder. Untuk kode contoh lengkap pembuatan folder, lihat contoh GitHub.

Anda dapat menggunakan parameter delimiter dan prefix untuk mensimulasikan fitur direktori:

  • Jika Anda mengatur parameter `prefix` ke nama folder, objek yang namanya diawali dengan awalan tersebut akan didaftar. Ini akan mendaftar secara rekursif semua objek dan subdirektori di dalam folder tersebut.

  • Jika Anda mengatur parameter `prefix` dan mengatur parameter `delimiter` ke garis miring (/), hanya objek dan subdirektori di tingkat atas folder yang didaftar. Subdirektori dikembalikan dalam elemen `CommonPrefixes`, sedangkan objek dan folder di dalam subdirektori tersebut tidak didaftar.

Asumsikan sebuah bucket berisi objek oss.jpg, fun/test.jpg, fun/movie/001.avi, dan fun/movie/007.avi, dan pemisah folder adalah garis miring (/). Contoh berikut menunjukkan cara mendaftar objek dengan mensimulasikan direktori.

  • Mendaftar semua objek dalam bucket

    • ListObjectsV2

      Kode contoh berikut menunjukkan cara menggunakan ListObjectsV2 untuk mendaftar semua objek dalam bucket.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar semua objek dalam bucket yang ditentukan.
      	startAfter := ""
      	continueToken := ""
      	for {
      		lsRes, err := bucket.ListObjectsV2(oss.StartAfter(startAfter), oss.ContinuationToken(continueToken))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			startAfter = lsRes.StartAfter
      			continueToken = lsRes.NextContinuationToken
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar.")
      }
      

      ListObjects

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar semua objek dalam bucket.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar semua objek dalam bucket yang ditentukan.
      	marker := ""
      	for {
      		lsRes, err := bucket.ListObjects(oss.Marker(marker))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			marker = lsRes.NextMarker
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar.")
      }
      
    • Hasil berikut dikembalikan saat Anda menggunakan dua metode di atas untuk mendaftar semua objek dalam bucket.

      Objects:
      fun/movie/001.avi
      fun/movie/007.avi
      fun/test.jpg
      oss.jpg
      CommonPrefixes:  
  • Mendaftar semua objek dalam direktori tertentu

    • ListObjectsV2

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar semua objek dalam direktori tertentu.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar semua objek dalam direktori yang ditentukan.
      	prefix := "aaa/db-init"
      	continueToken := ""
      	for {
      		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.ContinuationToken(continueToken))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			continueToken = lsRes.NextContinuationToken
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar.")
      }
      

      ListObjects

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar semua objek dalam direktori tertentu.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar semua objek dalam direktori yang ditentukan.
      	prefix := "aaa/db-init" // Ganti dengan awalan yang sebenarnya.
      	marker := ""
      	for {
      		lsRes, err := bucket.ListObjects(oss.Prefix(prefix), oss.Marker(marker))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			marker = lsRes.NextMarker
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar.")
      }
      
    • Hasil berikut dikembalikan saat Anda menggunakan dua metode di atas untuk mendaftar semua objek dalam direktori yang ditentukan.

      Objects:
      fun/movie/001.avi
      fun/movie/007.avi
      fun/test.jpg
      CommonPrefixes: 
  • Mendaftar objek dan subdirektori dalam direktori

    • ListObjectsV2

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar objek dan subdirektori dalam direktori.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar objek dan subdirektori dalam direktori yang ditentukan.
      	prefix := "" // Atur awalan sesuai kebutuhan.
      	delimiter := "/"
      	continueToken := ""
      	for {
      		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.Delimiter(delimiter), oss.ContinuationToken(continueToken))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak hasilnya. Secara default, 100 catatan dikembalikan sekaligus.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Cetak subdirektori.
      		for _, commonPrefix := range lsRes.CommonPrefixes {
      			log.Printf("Common Prefix: %s\n", commonPrefix)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			continueToken = lsRes.NextContinuationToken
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek dan subdirektori telah didaftar.")
      }
      

      ListObjects

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk mendaftar objek dan subdirektori dalam direktori.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Daftar objek dan subdirektori dalam direktori yang ditentukan.
      	prefix := "aaa/db-init/" // Ganti dengan awalan yang sebenarnya.
      	marker := ""
      	delimiter := "/"
      	for {
      		lsRes, err := bucket.ListObjects(oss.Prefix(prefix), oss.Marker(marker), oss.Delimiter(delimiter))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak daftar objek.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s\n", object.Key)
      		}
      
      		// Cetak daftar subdirektori.
      		for _, commonPrefix := range lsRes.CommonPrefixes {
      			log.Printf("Common Prefix: %s\n", commonPrefix)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			marker = lsRes.NextMarker
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek dan subdirektori telah didaftar.")
      }
      
    • Hasil berikut dikembalikan saat Anda menggunakan dua metode di atas untuk mendaftar objek dan subdirektori dalam direktori yang ditentukan.

      Objects:
      fun/test.jpg
      
      CommonPrefixes:
      fun/movie/   
  • Memperoleh ukuran objek dalam direktori tertentu

    • ListObjectsV2

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk memperoleh ukuran objek dalam direktori tertentu.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Dapatkan bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Dapatkan ukuran objek dalam direktori yang ditentukan.
      	prefix := "/fun" // Ganti dengan awalan yang sebenarnya.
      	continueToken := ""
      	for {
      		lsRes, err := bucket.ListObjectsV2(oss.Prefix(prefix), oss.ContinuationToken(continueToken))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak daftar objek dan ukurannya.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s, Size: %d Byte(s)\n", object.Key, object.Size)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			continueToken = lsRes.NextContinuationToken
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar beserta ukurannya.")
      }
      

      ListObjects

      Kode contoh berikut menunjukkan cara menggunakan metode ListObjects untuk memperoleh ukuran objek dalam direktori tertentu.

      package main
      
      import (
      	"log"
      
      	"github.com/aliyun/aliyun-oss-go-sdk/oss"
      )
      
      func main() {
      	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
      	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
      	if err != nil {
      		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
      	}
      
      	// Buat instans OSSClient.
      	// Setel yourEndpoint ke titik akhir bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
      	// Setel yourRegion ke wilayah bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
      	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider), oss.Region("yourRegion"), oss.AuthVersion(oss.AuthV4))
      	if err != nil {
      		log.Fatalf("Gagal membuat klien OSS: %v", err)
      	}
      
      	// Tentukan nama bucket.
      	bucketName := "yourBucketName" // Ganti dengan nama bucket yang sebenarnya.
      	bucket, err := client.Bucket(bucketName)
      	if err != nil {
      		log.Fatalf("Gagal mendapatkan bucket: %v", err)
      	}
      
      	// Dapatkan ukuran objek dalam direktori yang ditentukan.
      	prefix := "test/" // Ganti dengan awalan yang sebenarnya.
      	marker := ""
      	for {
      		lsRes, err := bucket.ListObjects(oss.Prefix(prefix), oss.Marker(marker))
      		if err != nil {
      			log.Fatalf("Gagal mendaftar objek: %v", err)
      		}
      
      		// Cetak daftar objek dan ukurannya.
      		for _, object := range lsRes.Objects {
      			log.Printf("Object Key: %s, Size: %d Byte(s)\n", object.Key, object.Size)
      		}
      
      		// Jika hasil terpotong, perbarui token kelanjutan dan lanjutkan loop.
      		if lsRes.IsTruncated {
      			marker = lsRes.NextMarker
      		} else {
      			break
      		}
      	}
      
      	log.Println("Semua objek telah didaftar beserta ukurannya.")
      }
      

FAQ

Bisakah saya mengurutkan objek berdasarkan waktu modifikasi terakhir saat mendaftarkannya?

Tidak. Jika Anda perlu mengurutkan objek berdasarkan waktu modifikasi terakhirnya, gunakan pengindeksan data.

Referensi