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(®ion, "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.