Este tópico descreve como verificar a existência de um bucket.
Observações de uso
O código de exemplo deste tópico usa o ID da região
cn-hangzhou, referente à região China (Hangzhou). Por padrão, o acesso aos recursos do bucket ocorre pelo endpoint público. Para acessar esses recursos por meio de outros serviços da Alibaba Cloud na mesma região do bucket, use o endpoint interno. Para mais informações sobre regiões e endpoints do OSS, consulte Regiões e endpoints.Neste tópico, as credenciais de acesso são obtidas de variáveis de ambiente. Para saber como configurar as credenciais de acesso, consulte Configurar credenciais de acesso.
A verificação da existência de um bucket exige a permissão
oss:GetBucketAcl. Para mais informações, consulte Conceder uma política personalizada.
Método
func (c *Client) IsBucketExist(ctx context.Context, bucket string, optFns ...func(*Options)) (bool, error)
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Descrição |
|
ctx |
context.Context |
Contexto da solicitação. Use este parâmetro para especificar a duração total da operação. |
|
bucket |
string |
Nome do bucket. |
|
optFns |
...func(*Options) |
Opcional. Parâmetro no nível da operação. Para mais informações, consulte Options. |
Parâmetros de resposta
|
Parâmetro de resposta |
Tipo |
Descrição |
|
flag |
bool |
Resultado da operação. Este parâmetro é válido apenas quando o valor de err é nil. |
|
err |
error |
Status da solicitação. Se a solicitação falhar, o valor de err não será nil. |
Exemplos
O exemplo de código a seguir mostra como verificar se um bucket existe:
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"
)
// Specify the global variables.
var (
region string // The region.
bucketName string // The name of the bucket.
)
// Specify the init function used to initialize command line parameters.
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() {
// 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")
}
// 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)
// Determine whether the bucket exists.
result, err := client.IsBucketExist(context.TODO(), bucketName)
if err != nil {
log.Fatalf("failed to check if bucket exists %v", err)
}
// Display the result.
log.Printf("is bucket exist: %#v\n", result)
}
Referências
Para obter o código de exemplo completo sobre a verificação de existência de bucket, acesse o GitHub.
Para mais detalhes sobre a operação de API usada para verificar a existência de um bucket, consulte IsBucketExist.