バケットが不要になった場合は、課金を停止するために削除します。Object Storage Service (OSS) の料金は、主にバケット内のリソースに対して発生します。バケットを削除する前に、バケット内のすべてのリソースをクリアする必要があります。バケットを削除することは、課金対象のリソースを見逃して想定外の料金が発生するのを防ぐための最も確実な方法です。削除されたデータは回復できないことにご注意ください。また、バケット名は解放され、他のユーザーが登録できるようになります。OSS サービスの使用を完全に停止するには、アカウント配下のすべてのバケットを削除する必要があります。
バケットが削除されると、その名前は解放され、他のユーザーが取得できるようになります。バケット名を保持したい場合は、バケットを削除するのではなく、中身を空にしてください。
バケット内のデータは、バケットが削除されると回復できません。バケットを削除する前に、データが不要であることを確認してください。バケット内のデータを引き続き使用する場合は、事前にバックアップしてください。詳細については、「バケットのバックアップ」をご参照ください。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient を作成する場合は、「OssClient インスタンスの作成」をご参照ください。
バケットを削除する前に、必要なリソースを削除したことを確認してください。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。Alibaba Cloud アカウント配下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを介して操作権限を付与する必要があります。
API | アクション | 定義 |
DeleteBucket |
| バケットを削除します。 |
RAM ポリシーで oss:DeleteBucket 権限を持っているにもかかわらずバケットを削除できない場合、バケットポリシーに oss:DeleteBucket 権限を明示的に拒否する文が含まれている可能性があります。この場合、文の効果を Deny から Allow に変更するか、バケットポリシーを削除してからバケットを削除する必要があります。
サンプルコード
次のコードは、`examplebucket` という名前のバケットを削除する方法の例を示しています。
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/*OSS アカウント情報を初期化します。*/
/*yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。*/
std::string Endpoint = "yourEndpoint";
/*yourRegion を、バケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。*/
std::string Region = "yourRegion";
/*バケット名を指定します (例: examplebucket)。*/
std::string BucketName = "examplebucket";
/*ネットワークリソースを初期化します。*/
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/*環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。*/
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
/*バケットを削除します。*/
DeleteBucketRequest request(BucketName);
auto outcome = client.DeleteBucket(request);
if (outcome.isSuccess()) {
std::cout << "Delete bucket successfully." << std::endl;
} else {
std::cout << "Failed to delete bucket. Error code: " << outcome.error().Code()
<< ", Message: " << outcome.error().Message()
<< ", RequestId: " << outcome.error().RequestId() << std::endl;
}
/*ネットワークリソースを解放します。*/
ShutdownSdk();
return 0;
}関連ドキュメント
バケットを削除するための完全なサンプルコードについては、GitHub をご参照ください。
バケットを削除するために呼び出すことができる API 操作の詳細については、「DeleteBucket」をご参照ください。