Todos os produtos
Search
Central de documentação

Object Storage Service:Determine whether an object exists (Go SDK V2)

Última atualização: Jul 03, 2026

Este tópico descreve como usar o OSS SDK for Go para verificar a existência de um objeto.

Observações de uso

  • O código de exemplo deste tópico usa o ID da região cn-hangzhou, correspondente à região China (Hangzhou). Por padrão, o acesso aos recursos em um bucket ocorre por meio de um endpoint público. Para acessar os recursos do bucket a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para mais informações sobre as regiões e endpoints compatíveis com o OSS, consulte Regiões e endpoints do OSS.

  • Neste tópico, as credenciais de acesso são obtidas de variáveis de ambiente. Para saber mais sobre como configurar credenciais de acesso, consulte Configurar credenciais de acesso.

  • A permissão oss:GetObject é necessária para baixe um objeto no computador local. Para mais detalhes, consulte Conceder permissões personalizadas a usuários RAM.

Definição do método

func (c *Client) IsObjectExist(ctx context.Context, bucket string, key string, optFns ...func(*IsObjectExistOptions)) (bool, error)

Parâmetros da solicitação

Parâmetro

Tipo

Descrição

ctx

context.Context

Contexto da solicitação. Use este parâmetro para defina o tempo limite total da solicitação.

bucket

string

Nome do bucket.

key

string

Nome do objeto.

optFns

...func(*IsObjectExistOptions)

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

Valores de retorno

Valor de retorno

Tipo

Descrição

flag

bool

Valor retornado pela operação da API. Este parâmetro é válido apenas quando err é nil.

err

error

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

Código de exemplo

Use o código abaixo para verificar a existência de um 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"
)

// Define global variables.
var (
	region     string // The region.
	bucketName string // The name of the bucket.
	objectName string // The name of the object.
)

// The init function is used to initialize command-line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
	flag.StringVar(&objectName, "object", "", "The name of the object.")
}

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

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

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

	// Check whether the object name is empty.
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, object name required")
	}

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

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

	// Check whether the object exists.
	result, err := client.IsObjectExist(context.TODO(), bucketName, objectName)
	if err != nil {
		log.Fatalf("failed to check if object exists %v", err)
	}

	// Print the check result.
	log.Printf("is object exist: %#v\n", result)
}

Referências

  • Para obter o código de exemplo completo sobre como verificar a existência de um objeto, consulte o Exemplo no GitHub.

  • Para mais detalhes sobre a operação da API usada nesta verificação, consulte a documentação do IsObjectExist.