當儲存空間(Bucket)不再需要或希望停止計費時,應刪除該Bucket。由於OSS的費用主要來源於Bucket內部資源,而刪除Bucket前系統強制要求清空所有內部資源,因此刪除Bucket是確保您不會遺漏任何計費資源而產生意外費用的最可靠方式。請注意,刪除後資料無法恢複,且Bucket名稱釋放後存在被他人佔用的風險。若要完全停用整個OSS服務,則需刪除您帳號下的所有Bucket。
刪除前必讀
關鍵風險提醒
風險類型 | 說明 | 預防措施 |
資料不可恢複 | 刪除後所有資料永久丟失 | 重要資料必須提前備份 |
名稱佔用風險 | 刪除後4-8小時內名稱可能被他人佔用 | 如需保留名稱,建議清空Bucket內容而非刪除Bucket |
業務中斷風險 | 正在使用的應用可能受影響 | 確認無業務依賴後在操作 |
同步刪除風險 | 若Bucket 配置了增/刪/改同步的跨/同地區複製規則,目標Bucket也會同步刪除檔案 | 檢查複製配置,確認影響範圍 |
安全檢查清單
在執行刪除前,請確認以下事項:
資料備份:重要資料已完成備份並驗證可用性
業務確認:確認沒有應用或服務正在使用此Bucket
許可權驗證:確認目前使用者具有刪除許可權
團隊通知:已通知相關團隊成員此刪除操作
時間選擇:選擇合適的維護時間視窗執行
檢查必須刪除的資源
如果Bucket中殘留檔案、片段、存取點、加速器或RTMP推流地址等一種或多種必須刪除的資源沒有清理,在刪除 Bucket 時將出現“儲存空間不為空白”的報錯。建議使用 OSS 控制台刪除嚮導,自動掃描並列出所有待清理項。
登入OSS管理主控台。
單擊Bucket 列表,然後單擊目標Bucket名稱。
下滑左側導覽列至底部,單擊移除Bucket。
在移除Bucket頁面,單擊刪除Bucket按鈕,可以看到檢測出的待清理項。

清理必須刪除的資源
根據系統檢測出的資源類型進行清理。檔案量較大時,推薦使用生命週期規則自動處理。
清理檔案
若檔案資源的狀態列提示已開啟 HDFS 功能,請先清理HDFS 檔案。若已開啟版本控制,OSS檔案清單會同時顯示目前的版本與歷史版本,因此執行全選刪除時會一併刪除所有版本檔案。
OSS檔案
使用OSS控制台
在移除Bucket頁面單擊刪除Bucket,找到檔案資源項,單擊前往刪除。
選中所有Object,單擊下方的徹底刪除。
在彈出的對話方塊中,單擊確定。
使用ossutil
刪除該bucket下所有檔案(包括目前的版本和歷史版本)
ossutil rm oss://examplebucket/ -r更多樣本,請參見rm(刪除)。
HDFS檔案
通過OSS控制台的方式
在檔案資源的狀態列單擊立即暫停,停止HDFS背景工作。
單擊前往刪除,進入HDFS頁簽。
逐個單擊徹底刪除,直至清空所有HDFS檔案。
通過HDFS Shell命令的方式
hdfs dfs -rm -r -skipTrash oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/*清理片段
使用OSS控制台
在移除Bucket頁面單擊刪除Bucket,找到片段資源項,單擊前往刪除。
在檔案清單頁面,單擊片段管理。
在片段管理(Multipart)面板,單擊刪除所有。
在彈出的對話方塊中,單擊確定。
使用ossutil
刪除未完成或未取消上傳的所有分區片段。
ossutil rm oss://examplebucket -m -r -f更多資訊,請參見rm(刪除)。
清理存取點
單擊左側導覽列的存取點。
逐個單擊刪除存取點。
按指引刪除對應存取原則。
刪除存取原則後,回到存取點列表。按頁面引導輸入存取點名稱,單擊確定完成刪除。
清理加速器
請注意,刪除加速器僅會清除加速器內緩衝的資料,儲存在OSS桶中的資料不會受到影響。
單擊左側導覽列的Bucket配置 > 加速器。
在OSS加速器列表操作列單擊刪除按鈕。
按頁面引導輸入加速器名稱,單擊確定完成刪除。

清理RTMP推流地址
Bucket的LiveChannel查看和刪除暫不支援通過工具和控制台操作,可以使用介面或者是SDK來實現操作,請參見DeleteLiveChannel,刪除指定的LiveChannel。範例程式碼如下:
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.LiveChannelGenericRequest;
/**
* 刪除指定的LiveChannel範例程式碼
* 該程式示範如何刪除阿里雲OSS中的LiveChannel
*/
public class Demo {
public static void main(String[] args) throws Exception {
// OSS服務地址,根據實際地區選擇對應的Endpoint,此處以杭州地區為例。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填寫Bucket名稱,例如examplebucket。
String bucketName = "examplebucket";
// 填寫LiveChannel名稱。
String liveChannelName = "yourLiveChannelName";
// 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou。
String region = "cn-hangzhou";
// 建立OSSClient執行個體。
// 當OSSClient執行個體不再使用時,調用shutdown方法以釋放資源。
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// 建立刪除LiveChannel的請求
LiveChannelGenericRequest request = new LiveChannelGenericRequest(bucketName, liveChannelName);
// 執行刪除操作
ossClient.deleteLiveChannel(request);
} catch (OSSException oe) {
// 處理OSS服務端返回的異常
oe.printStackTrace();
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (Exception e) {
System.out.println("Caught an unexpected exception:");
e.printStackTrace();
} finally {
if (ossClient != null) {
// 釋放OSSClient資源
ossClient.shutdown();
}
}
}
}刪除Bucket
清空Bucket內的必刪資源,才能刪除Bucket本身。
使用OSS控制台
返回目標 Bucket 的刪除 Bucket頁面。
單擊刪除Bucket,按頁面引導輸入Bucket名稱,單擊確定完成刪除。
ossutil
以下命令用於刪除儲存空間examplebucket。
ossutil api delete-bucket --bucket examplebucket更多資訊,請參見delete-bucket。
OSS SDK
以下僅列舉常見SDK的刪除Bucket的程式碼範例。關於其他SDK的刪除Bucket的程式碼範例,請參見SDK簡介。
Java
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
public class Demo {
public static void main(String[] args) throws Exception {
// Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填寫Bucket名稱,例如examplebucket。
String bucketName = "examplebucket";
// 填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為cn-hangzhou。
String region = "cn-hangzhou";
// 建立OSSClient執行個體。
// 當OSSClient執行個體不再使用時,調用shutdown方法以釋放資源。
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// 刪除儲存空間。
ossClient.deleteBucket(bucketName);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
} Node.js
const OSS = require('ali-oss');
const client = new OSS({
// yourregion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
region: 'yourregion',
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// yourBucketName填寫Bucket名稱。
bucket: 'yourBucketName',
});
async function deleteBucket() {
try {
// 指定儲存空間名稱。
const result = await client.deleteBucket('yourbucketname');
console.log(result);
} catch (err) {
console.log(err);
}
}
deleteBucket();.NET
using System;
using Aliyun.OSS;
using Aliyun.OSS.Common;
namespace Samples
{
public class Program
{
public static void Main(string[] args)
{
// yourEndpoint填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// 填寫Bucket名稱,例如examplebucket。
var bucketName = "examplebucket314";
// 填寫Bucket所在地區對應的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。
const string region = "cn-hangzhou";
// 建立ClientConfiguration執行個體,按照您的需要修改預設參數。
var conf = new ClientConfiguration();
// 設定v4簽名。
conf.SignatureVersion = SignatureVersion.V4;
// 建立OssClient執行個體。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
client.DeleteBucket(bucketName);
Console.WriteLine("Delete bucket succeeded");
}
catch (Exception ex)
{
Console.WriteLine("Delete bucket failed. {0}", ex.Message);
}
}
}
}Android
DeleteBucketRequest deleteBucketRequest = new DeleteBucketRequest("bucketName");
// 非同步刪除儲存空間。
OSSAsyncTask deleteBucketTask = oss.asyncDeleteBucket(deleteBucketRequest, new OSSCompletedCallback<DeleteBucketRequest, DeleteBucketResult>() {
@Override
public void onSuccess(DeleteBucketRequest request, DeleteBucketResult result) {
Log.d("asyncDeleteBucket", "Success!");
}
@Override
public void onFailure(DeleteBucketRequest request, ClientException clientException, ServiceException serviceException) {
// 請求異常。
if (clientException != null) {
// 本地異常,如網路異常等。
clientException.printStackTrace();
}
if (serviceException != null) {
// 服務異常。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});iOS
OSSDeleteBucketRequest * delete = [OSSDeleteBucketRequest new];
// 填寫儲存空間名稱,例如examplebucket。
delete.bucketName = @"examplebucket";
OSSTask * deleteTask = [client deleteBucket:delete];
[deleteTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"delete bucket success!");
} else {
NSLog(@"delete bucket failed, error: %@", task.error);
}
return nil;
}];
// 實現同步阻塞等待任務完成。
// [getdeleteTask waitUntilFinished];C++
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/*初始化OSS帳號資訊。*/
/*yourEndpoint填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
std::string Endpoint = "yourEndpoint";
/ *yourRegion填寫Bucket所在地區對應的Region。以華東1(杭州)為例,Region填寫為cn - hangzhou。 * /
std::string Region = "yourRegion";
/*填寫Bucket名稱,例如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);
/*刪除Bucket。*/
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;
}C
#include "oss_api.h"
#include "aos_http_io.h"
/* yourEndpoint填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
const char *endpoint = "yourEndpoint";
/* 填寫Bucket名稱,例如examplebucket。*/
const char *bucket_name = "examplebucket";
/* yourRegion填寫Bucket所在地區對應的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* 用char*類型的字串初始化aos_string_t類型。*/
aos_str_set(&options->config->endpoint, endpoint);
/* 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
//需要額外配置以下兩個參數
aos_str_set(&options->config->region, region);
options->config->signature_version = 4;
/* 是否使用CNAME網域名稱訪問OSS服務。0表示不使用。*/
options->config->is_cname = 0;
/* 設定網路相關參數,比如逾時時間等。*/
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
/* 在程式入口調用aos_http_io_initialize方法來初始化網路、記憶體等全域資源。*/
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
exit(1);
}
/* 用於記憶體管理的記憶體池(pool),等價於apr_pool_t。其實現代碼在apr庫中。*/
aos_pool_t *pool;
/* 重新建立一個記憶體池,第二個參數是NULL,表示沒有繼承其它記憶體池。*/
aos_pool_create(&pool, NULL);
/* 建立並初始化options,該參數包括endpoint、access_key_id、acces_key_secret、is_cname、curl等全域配置資訊。*/
oss_request_options_t *oss_client_options;
/* 在記憶體池中分配記憶體給options。*/
oss_client_options = oss_request_options_create(pool);
/* 初始化Client的選項oss_client_options。*/
init_options(oss_client_options);
/* 初始化參數。*/
aos_string_t bucket;
aos_table_t *resp_headers = NULL;
aos_status_t *resp_status = NULL;
/* 將char*類型資料賦值給aos_string_t類型的儲存空間。*/
aos_str_set(&bucket, bucket_name);
/* 刪除儲存空間。*/
resp_status = oss_delete_bucket (oss_client_options, &bucket, &resp_headers);
if (aos_status_is_ok(resp_status)) {
printf("delete bucket succeeded\n");
} else {
printf("delete bucket failed\n");
}
/* 釋放記憶體池,相當於釋放了請求過程中各資源分派的記憶體。*/
aos_pool_destroy(pool);
/* 釋放之前分配的全域資源。*/
aos_http_io_deinitialize();
return 0;
}Ruby
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以華東1(杭州)為例,其它Region請按實際情況填寫。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# 填寫Bucket名稱,例如examplebucket。
client.delete_bucket('examplebucket')Go
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
bucketName string
)
func init() {
// 定義命令列參數,用於指定地區和儲存空間名稱
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
// 解析命令列參數
flag.Parse()
// 檢查儲存空間名稱參數是否為空白
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// 檢查地區參數是否為空白
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// 載入預設配置並設定憑證提供者和地區
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// 建立OSS用戶端
client := oss.NewClient(cfg)
// 建立刪除儲存空間請求對象
request := &oss.DeleteBucketRequest{
Bucket: oss.Ptr(bucketName),
}
// 調用DeleteBucket方法刪除儲存空間
result, err := client.DeleteBucket(context.TODO(), request)
if err != nil {
log.Fatalf("failed to delete bucket %v", err)
}
// 列印刪除結果
log.Printf("delete bucket result:%#v\n", result)
}
Python
import argparse
import alibabacloud_oss_v2 as oss
# 建立命令列參數解析器,描述此指令碼用於刪除指定的OSS Bucket。
parser = argparse.ArgumentParser(description="Delete a specified OSS bucket.")
# 添加命令列參數 --region,表示儲存空間所在的地區,必需參數
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# 添加命令列參數 --bucket,表示儲存空間的名稱,必需參數
parser.add_argument('--bucket', help='The name of the bucket to delete.', required=True)
# 添加命令列參數 --endpoint,表示其他服務可用來訪問OSS的網域名稱,非必需參數
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS.')
def main():
"""
主函數,用於解析命令列參數並執行刪除指定Bucket的操作。
"""
args = parser.parse_args() # 解析命令列參數
# 從環境變數中載入憑證資訊,用於身分識別驗證
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# 使用SDK的預設配置,並設定憑證提供者和地區資訊
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# 如果提供了endpoint參數,則設定配置中的endpoint
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 使用配置好的資訊建立OSS用戶端
client = oss.Client(cfg)
# 構造請求以刪除指定的Bucket
request = oss.DeleteBucketRequest(bucket=args.bucket)
try:
# 發送請求並擷取響應結果
result = client.delete_bucket(request)
# 列印響應結果的狀態代碼和請求ID
print(f'status code: {result.status_code},'
f' request id: {result.request_id}')
except oss.exceptions.OssError as e:
# 捕獲並列印可能發生的異常
print(f"Failed to delete bucket: {e}")
if __name__ == "__main__":
main() # 指令碼入口,當檔案被直接運行時調用main函數
PHP
<?php
require_once __DIR__ . '/../vendor/autoload.php'; // 引入自動負載檔案,載入依賴庫
use AlibabaCloud\Oss\V2 as Oss;
// 定義命令列參數描述
$optsdesc = [
"region" => ['help' => 'The region in which the bucket is located.', 'required' => True], // 地區是必填項,儲存空間所在的地區,例如 oss-cn-hangzhou。
"endpoint" => ['help' => 'The domain names that other services can use to access OSS.', 'required' => False], // 終端節點是可選項,其他服務可以用來訪問OSS的網域名稱。
"bucket" => ['help' => 'The name of the bucket', 'required' => True], // 儲存空間名稱是必填項。
];
$longopts = \array_map(function ($key) {
return "$key:"; // 每個參數後面加冒號,表示需要值
}, array_keys($optsdesc));
// 解析命令列參數
$options = getopt("", $longopts);
// 檢查必填參數是否缺失
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: the following arguments are required: --$key, $help"; // 提示使用者缺少必填參數
exit(1);
}
}
// 擷取命令列參數值
$region = $options["region"]; // 儲存空間所在地區。
$bucket = $options["bucket"]; // 儲存空間名稱。
// 使用環境變數載入憑證資訊(AccessKeyId 和 AccessKeySecret)
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// 使用SDK的預設配置
$cfg = Oss\Config::loadDefault(); // 載入SDK的預設配置。
$cfg->setCredentialsProvider($credentialsProvider); // 設定憑證提供者。
$cfg->setRegion($region); // 設定地區。
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // 如果提供了終端節點,則設定終端節點。
}
// 建立OSS用戶端執行個體
$client = new Oss\Client($cfg);
// 建立刪除儲存空間的請求對象
$request = new Oss\Models\DeleteBucketRequest($bucket);
// 調用deleteBucket方法刪除儲存空間
$result = $client->deleteBucket($request);
// 列印返回結果
printf(
'status code:' . $result->statusCode . PHP_EOL . // HTTP響應狀態代碼。
'request id:' . $result->requestId // 請求的唯一標識。
);
自動清理海量檔案和片段
若Bucket內檔案量極大,手動清理耗時過長,可配置生命週期規則讓系統自動清理。請注意,檔案刪除操作無法復原,操作前務必謹慎。如對生命週期規則不熟悉,建議先在測試Bucket中進行驗證。
Bucket未開啟版本控制
對於未開啟版本控制的Bucket,只需要配置一條生命週期規則,即可自動快速清理所有檔案和片段(Multipart Upload產生的未合并片段)。
登入OSS管理主控台的Bucket列表頁面,找到目標Bucket。
在左側導覽列,選擇,確認Bucket未開啟版本控制。

在左側導覽列,選擇,設定生命週期規則,指定Bucket內所有檔案在最後一次修改後1天自動刪除,同時對產生時間早於1天的檔案片段,自動執行清理操作。

Bucket已開啟版本控制
Bucket開啟版本控制後,會產生目前的版本檔案、歷史版本檔案、片段檔案和刪除標記。只需要配置一條生命週期規則,即可自動快速清理這些檔案。
登入OSS管理主控台的Bucket列表頁面,找到目標Bucket。
在左側導覽列,選擇,確認Bucket已開啟版本控制。

在左側導覽列,選擇,設定生命週期規則,指定Bucket內所有目前的版本、歷史版本檔案在最後一次修改後1天自動刪除,同時對產生時間早於1天的檔案片段,自動執行清理操作。該規則會同步清理刪除標記。

常見問題
刪除時提示“Bucket不為空白”怎麼辦?
Bucket內還有資源未清理。建議通過OSS控制台查看當前剩餘資源,然後參照清理必須刪除的資源進行清理,清理完畢後重試刪除Bucket。
刪除後如何立即重建同名Bucket?
刪除Bucket後,Bucket名稱在刪除後有4-8小時的冷卻期,無法立即同名重建。如果業務緊急,請使用新的Bucket名稱。
冷卻期結束後,任何使用者都可以建立該名稱的Bucket。如果未及時重新建立,存在被其他使用者搶先註冊的風險。
如何大量刪除多個Bucket?
大量刪除是一項高風險操作,可能導致大量資料永久丟失。執行前,請務必再三確認待刪除的Bucket列表,並完成所有必要的資料備份。
控制台不提供大量刪除功能,您需要通過編寫自動化指令碼(如Shell、Python等)並結合ossutil命令列工具來完成。
其核心實現原理如下:
準備清單:建立一個準確無誤的、包含所有待刪除Bucket名稱的文字檔或列表。
迴圈執行:您的指令碼需要遍曆這個清單,對每一個Bucket名稱執行以下兩個關鍵步驟。
清空資源:為當前Bucket調用ossutil的清空命令。
刪除空Bucket:在確認上一步成功後,再調用ossutil的刪除Bucket命令。
刪除時提示“許可權不足”怎麼辦?
刪除Bucket前需先清理內部資源,清理過程中涉及列舉(list)和刪除(delete)等多項許可權,建議聯絡管理員一次性為您的RAM身份授予AliyunOSSFullAccess許可權,避免因許可權點遺漏導致刪除失敗。
如何徹底停止OSS計費?
刪除您帳號下所有的Bucket。
誤刪除Bucket後是否可以恢複?
不能。 刪除操作無法復原,請務必先備份再刪除。