Todos os produtos
Search
Central de documentação

Object Storage Service:Excluir buckets com o OSS SDK for Go 2.0

Última atualização: Jul 03, 2026

Exclua um bucket do Object Storage Service (OSS) desnecessário para evitar cobranças indevidas.

Observações

  • O código de exemplo deste tópico usa, por padrão, o ID da região cn-hangzhou, referente à região China (Hangzhou), e o endpoint público. Para acessar recursos do bucket a partir de outros serviços da Alibaba Cloud na mesma região, use o endpoint interno. Para obter mais informações sobre regiões e endpoints do OSS, consulte Regiões e endpoints do OSS.

  • As credenciais de acesso são obtidas de variáveis de ambiente. Para saber como configurar credenciais de acesso, consulte Configurar credenciais de acesso.

  • Os nomes dos buckets devem ser exclusivos. Após a exclusão de um bucket, o nome fica disponível para uso por terceiros. Caso deseje preservar o nome, esvazie o bucket em vez de excluí-lo.

  • Não é possível restaurar buckets excluídos. Antes de excluir um bucket, confirme que os dados não são mais necessários ou faça um backup prévio. Para mais detalhes, consulte Fazer backup de buckets.

  • A permissão oss:DeleteBucket é obrigatória para excluir buckets. Para mais informações, consulte Conceder uma política personalizada.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a essa conta não têm nenhuma permissão inicialmente. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões operacionais por meio de políticas do RAM ou Bucket Policy.

API

Ação

Descrição

DeleteBucket

oss:DeleteBucket

Exclui um bucket.

Nota

Se um usuário RAM tiver a permissão oss:DeleteBucket em uma política do RAM, mas não conseguir excluir o bucket, é possível que uma bucket policy anexada ao usuário contenha oss:DeleteBucket com o efeito definido como Deny. Altere o valor de Deny para Allow ou remova a bucket policy para resolver o problema.

Pré-requisitos

  • Todos os objetos do bucket foram excluídos.

    Importante

    Para excluir um bucket com versionamento ativado, certifique-se de que todas as versões atuais e anteriores dos objetos no bucket foram removidas. Para mais informações, consulte Versionamento.

    • Caso o bucket contenha poucos objetos, recomenda-se a exclusão manual. Para mais detalhes, consulte Excluir objetos.

    • Se o bucket contiver um grande volume de objetos, configure regras de ciclo de vida para excluí-los. Para mais informações, consulte Regras de ciclo de vida.

  • As partes geradas por tarefas de upload multipart ou upload retomável no bucket foram excluídas. Para mais informações, consulte Excluir partes.

Método

func (c *Client) DeleteBucket(ctx context.Context, request *DeleteBucketRequest, optFns ...func(*Options)) (*DeleteBucketResult, error)

Parâmetros da solicitação

Parâmetro

Tipo

Descrição

ctx

context.Context

Contexto da solicitação, usado para definir a duração total da requisição.

request

*DeleteBucketRequest

Parâmetros específicos da operação da API. Para mais informações, consulte DeleteBucketRequest.

optFns

...func(*Options)

Opcional. Parâmetro no nível da operação. Para mais detalhes, consulte Options.

Parâmetros de resposta

Parâmetro

Tipo

Descrição

result

*DeleteBucketResult

Resposta da operação. Válido quando err é nil. Para mais informações, visite DeleteBucketResult.

err

error

Status de erro. Um valor diferente de nil indica falha na solicitação.

Código de exemplo

O código abaixo demonstra como excluir um bucket.

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() {
	// Define command line parameters to specify the region and name of the bucket.
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// Parse command line parameters.
	flag.Parse()

	// Check whether the name of the bucket is specified.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is specified.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Load the default configurations and specify the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSS client.
	client := oss.NewClient(cfg)

	// Create a request object for deletion.
	request := &oss.DeleteBucketRequest{
		Bucket: oss.Ptr(bucketName),
	}

	// Call the DeleteBucket method.
	result, err := client.DeleteBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to delete bucket %v", err)
	}

	// Display the result.
	log.Printf("delete bucket result:%#v\n", result)
}

Referências

  • Para acessar o código de exemplo completo sobre exclusão de buckets, visite o exemplo no GitHub.

  • Para consultar a referência da API de exclusão de buckets, veja DeleteBucket.