このトピックでは、指定されたバケットが存在するかどうかを確認する方法について説明します。
注意事項
このトピックのサンプルコードでは、デフォルトで中国 (杭州) リージョン (
cn-hangzhou) とパブリックエンドポイントを使用します。 同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。 OSS がサポートしているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。バケットが存在するかどうかを確認するには、
oss:GetBucketAcl権限が必要です。 詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
サンプルコード
次のコードを使用して、バケットが存在するかどうかを確認できます。
import AlibabaCloudOSS
import Foundation
@main
struct Main {
static func main() async {
do {
// バケットが配置されているリージョンを指定します。 この例では、中国 (杭州) リージョンに cn-hangzhou を使用します。
let region = "cn-hangzhou"
// バケット名を指定します。
let bucket = "yourBucketName"
// オプション。 OSS へのアクセスに使用するエンドポイントを指定します。 この例では、中国 (杭州) リージョンに https://oss-cn-hangzhou.aliyuncs.com を使用します。
let endpoint: String? = nil
// 環境変数からアクセス認証情報を取得します。 このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
let credentialsProvider = EnvironmentCredentialsProvider()
// OSS クライアントのパラメーターを設定します。
let config = Configuration.default()
.withRegion(region) // リージョンを設定します。
.withCredentialsProvider(credentialsProvider) // 認証情報を設定します。
// エンドポイントを設定します。
if let endpoint = endpoint {
config.withEndpoint(endpoint)
}
// OSS クライアントインスタンスを作成します。
let client = Client(config)
// バケットが存在するかどうかを確認します。
let result = try await client.isBucketExist(bucket)
print("result:\n\(result)") // 結果を出力します。
} catch {
// プログラムを停止し、エラーを出力します。
print("error: \(error)")
}
}
}
リファレンス
完全なサンプルコードについては、「isBucketExist」をご参照ください。