Todos os produtos
Search
Central de documentação

Object Storage Service:Excluir objetos (Go SDK V2)

Última atualização: Jul 03, 2026

Use o OSS SDK para Go para excluir um ou mais objetos de um bucket.

Observações

  • O código de exemplo usa por padrão o ID da região cn-hangzhou para China (Hangzhou) e um endpoint público. Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter mais informações sobre regiões e endpoints compatíveis, consulte Regions and endpoints.

  • Os exemplos obtêm as credenciais de acesso de variáveis de ambiente. Para mais informações, consulte Configure access credentials.

  • Para excluir um objeto, você precisa ter a permissão oss:DeleteObject. Para mais informações, consulte Grant custom permission policies to RAM users.

Assinaturas dos métodos

Excluir um único objeto

func (c *Client) DeleteObject(ctx context.Context, request *DeleteObjectRequest, optFns ...func(*Options)) (*DeleteObjectResult, error)

Excluir vários objetos

func (c *Client) DeleteMultipleObjects(ctx context.Context, request *DeleteMultipleObjectsRequest, optFns ...func(*Options)) (*DeleteMultipleObjectsResult, error)

Parâmetros da requisição

Parâmetro

Tipo

Descrição

ctx

context.Context

Contexto da requisição, que pode ser usado para definir um tempo limite.

request

*DeleteObjectRequest

Parâmetros da requisição, como o nome do objeto. Para mais informações, consulte DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Parâmetros da requisição, como a lista de objetos a serem excluídos. Para mais informações, consulte DeleteMultipleObjectsRequest.

optFns

...func(*Options)

(Opcional) Parâmetros de configuração no nível da operação. Para mais informações, consulte Options.

Parâmetros da resposta

Parâmetro

Tipo

Descrição

result

*DeleteObjectResult

Resultado da operação. Válido somente quando err é nil. Para mais informações, consulte DeleteObjectResult.

*DeleteMultipleObjectsResult

Resultado da operação. Válido somente quando err é nil. Para mais informações, consulte DeleteMultipleObjectsResult.

err

error

Status da requisição. Se a requisição falhar, err não será nil.

Exemplos

Excluir um único objeto

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"
)

// Defina variáveis globais.
var (
	region     string // A região do bucket.
	bucketName string // O nome do bucket.
	objectName string // O nome do objeto.
)

// A função init inicializa os argumentos da linha de comando.
func init() {
	flag.StringVar(&region, "region", "", "A região em que o bucket está localizado.")
	flag.StringVar(&bucketName, "bucket", "", "O nome do bucket.")
	flag.StringVar(&objectName, "object", "", "O nome do objeto.")
}

func main() {
	// Analise os argumentos da linha de comando.
	flag.Parse()

	// Verifique se o nome do bucket está vazio.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, nome do bucket obrigatório")
	}

	// Verifique se a região está vazia.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, região obrigatória")
	}

	// Verifique se o nome do objeto está vazio.
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, nome do objeto obrigatório")
	}

	// Carregue a configuração padrão e defina o provedor de credenciais e a região.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Crie um cliente OSS.
	client := oss.NewClient(cfg)

	// Crie uma requisição para excluir o objeto.
	request := &oss.DeleteObjectRequest{
		Bucket: oss.Ptr(bucketName), // O nome do bucket.
		Key:    oss.Ptr(objectName), // O nome do objeto.
	}

	// Exclua o objeto e processe o resultado.
	result, err := client.DeleteObject(context.TODO(), request)
	if err != nil {
		log.Fatalf("falha ao excluir objeto %v", err)
	}

	// Imprima o resultado.
	log.Printf("resultado da exclusão do objeto:%#v\n", result)
}

Excluir vários objetos

package main

import (
	"context"
	"flag"
	"log"
	"strings"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Defina variáveis globais.
var (
	region     string // A região onde o bucket está localizado.
	bucketName string // O nome do bucket.
	objects    string // Os nomes dos objetos (separados por vírgula).
)

// A função init inicializa os argumentos da linha de comando.
func init() {
	flag.StringVar(&region, "region", "", "A região em que o bucket está localizado.")
	flag.StringVar(&bucketName, "bucket", "", "O nome do bucket.")
	flag.StringVar(&objects, "objects", "", "Os nomes dos objetos (separados por vírgula).")
}

func main() {
	// Analise os argumentos da linha de comando.
	flag.Parse()

	// Verifique se o nome do bucket está vazio.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, nome do bucket obrigatório")
	}

	// Verifique se a região está vazia.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, região obrigatória")
	}

	// Verifique se a lista de nomes de objetos está vazia.
	if len(objects) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parâmetros inválidos, nome dos objetos obrigatório")
	}

	// Carregue a configuração padrão e defina o provedor de credenciais e a região.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Crie um cliente OSS.
	client := oss.NewClient(cfg)

	// Converta a string separada por vírgulas de nomes de objetos em uma fatia.
	var DeleteObjects []oss.DeleteObject
	objectSlice := strings.Split(objects, ",")
	for _, name := range objectSlice {
		DeleteObjects = append(DeleteObjects, oss.DeleteObject{Key: oss.Ptr(strings.TrimSpace(name))})
	}

	// Crie uma requisição para excluir vários objetos.
	request := &oss.DeleteMultipleObjectsRequest{
		Bucket:  oss.Ptr(bucketName), // O nome do bucket.
		Delete: &oss.Delete{
			Objects: DeleteObjects, // A lista de objetos a serem excluídos.
		},
	}

	// Exclua os objetos e processe o resultado.
	result, err := client.DeleteMultipleObjects(context.TODO(), request)
	if err != nil {
		log.Fatalf("falha ao excluir vários objetos %v", err)
	}

	// Imprima o resultado.
	log.Printf("resultado da exclusão de vários objetos:%#v\n", result)
}

Referências