Topik ini menjelaskan cara menggunakan OSS Swift SDK untuk mendaftar semua objek dalam bucket tertentu.
Catatan
Kode contoh dalam topik ini menggunakan wilayah China (Hangzhou) (ID wilayah:
cn-hangzhou) sebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, Anda dapat menggunakan titik akhir internal. Untuk informasi selengkapnya tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir.Untuk mencantumkan objek, Anda harus memiliki izin
oss:ListObjects. Untuk informasi lebih lanjut, lihat Memberikan izin kustom kepada Pengguna RAM.
Kode contoh
Kode berikut menunjukkan cara menggunakan metode ListObjectsV2 untuk mendaftar objek dalam bucket tertentu.
import AlibabaCloudOSS
import Foundation
@main
struct Main {
static func main() async {
do {
// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
let region = "cn-hangzhou"
// Tentukan nama bucket.
let bucket = "yourBucketName"
// Opsional. Tentukan nama domain yang digunakan untuk mengakses OSS. Misalnya, atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com untuk China (Hangzhou).
let endpoint: String? = nil
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
let credentialsProvider = EnvironmentCredentialsProvider()
// Konfigurasikan parameter klien OSS.
let config = Configuration.default()
.withRegion(region) // Atur wilayah tempat bucket berada.
.withCredentialsProvider(credentialsProvider) // Atur kredensial akses.
// Atur titik akhir.
if let endpoint = endpoint {
config.withEndpoint(endpoint)
}
// Buat instans klien OSS.
let client = Client(config)
// Tentukan token tempat operasi daftar dimulai.
var continueToken: String?
// Periksa apakah semua objek telah didaftar.
var isTruncated: Bool = false
repeat {
let result = try await client.listObjectsV2(
ListObjectsV2Request(
bucket: bucket,
maxKeys: 10,
continuationToken: continueToken
)
)
// Telusuri daftar objek pada halaman saat ini.
for content in result.contents ?? [] {
// Cetak metadata objek: nama objek, ukuran dalam byte, dan waktu modifikasi terakhir.
print("Object key:\(content.key ?? ""), size: \(String(describing: content.size)), last modified: \(String(describing: content.lastModified))")
}
isTruncated = result.isTruncated ?? false
continueToken = result.nextContinuationToken
} while isTruncated
} catch {
// Cetak error.
print("error: \(error)")
}
}
}Skenario umum
Referensi
Untuk kode contoh lengkap yang digunakan untuk mendaftar objek, lihat Contoh GitHub.
Untuk informasi selengkapnya tentang operasi API yang digunakan untuk mendaftar objek, lihat ListObjectsV2.