Utilisation HeadBucket avec un AWS SDK ou une CLI - AWS Exemples de code SDK

D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation HeadBucket avec un AWS SDK ou une CLI

Les exemples de code suivants illustrent comment utiliser HeadBucket.

Bash
AWS CLI avec le script Bash
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

############################################################################### # function bucket_exists # # This function checks to see if the specified bucket already exists. # # Parameters: # $1 - The name of the bucket to check. # # Returns: # 0 - If the bucket already exists. # 1 - If the bucket doesn't exist. ############################################################################### function bucket_exists() { local bucket_name bucket_name=$1 # Check whether the bucket already exists. # We suppress all output - we're interested only in the return code. if aws s3api head-bucket \ --bucket "$bucket_name" \ >/dev/null 2>&1; then return 0 # 0 in Bash script means true. else return 1 # 1 in Bash script means false. fi }
  • Pour plus de détails sur l'API, reportez-vous HeadBucketà la section Référence des AWS CLI commandes.

CLI
AWS CLI

La commande suivante vérifie l'accès à un compartiment nommé amzn-s3-demo-bucket :

aws s3api head-bucket --bucket amzn-s3-demo-bucket

Si le bucket existe et que vous y avez accès, aucune sortie n'est renvoyée. Dans le cas contraire, un message d'erreur s'affichera. Par exemple :

A client error (404) occurred when calling the HeadBucket operation: Not Found
  • Pour plus de détails sur l'API, reportez-vous HeadBucketà la section Référence des AWS CLI commandes.

Go
Kit SDK for Go V2
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

import ( "bytes" "context" "errors" "fmt" "io" "log" "os" "time" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/feature/s3/manager" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3/types" "github.com/aws/smithy-go" ) // BucketBasics encapsulates the Amazon Simple Storage Service (Amazon S3) actions // used in the examples. // It contains S3Client, an Amazon S3 service client that is used to perform bucket // and object actions. type BucketBasics struct { S3Client *s3.Client } // BucketExists checks whether a bucket exists in the current account. func (basics BucketBasics) BucketExists(ctx context.Context, bucketName string) (bool, error) { _, err := basics.S3Client.HeadBucket(ctx, &s3.HeadBucketInput{ Bucket: aws.String(bucketName), }) exists := true if err != nil { var apiError smithy.APIError if errors.As(err, &apiError) { switch apiError.(type) { case *types.NotFound: log.Printf("Bucket %v is available.\n", bucketName) exists = false err = nil default: log.Printf("Either you don't have access to bucket %v or another error occurred. "+ "Here's what happened: %v\n", bucketName, err) } } } else { log.Printf("Bucket %v exists and you already own it.", bucketName) } return exists, err }
  • Pour plus de détails sur l'API, reportez-vous HeadBucketà la section Référence des AWS SDK pour Go API.

PowerShell
Outils pour PowerShell V5

Exemple 1 : Cette commande renvoie le résultat avec le code d'état HTTP 200 OK pour le bucket existant lorsque l'utilisateur est autorisé à y accéder. BucketArn le paramètre n'est pris en charge que pour les compartiments de répertoire S3.

Get-S3HeadBucket -BucketName amzn-s3-demo-bucket

Sortie :

AccessPointAlias : False BucketArn : BucketLocationName : BucketLocationType : BucketRegion : us-east-2 ResponseMetadata : Amazon.Runtime.ResponseMetadata ContentLength : 0 HttpStatusCode : OK

Exemple 2 : Cette commande génère une erreur avec le code d'état HTTP NotFound pour un bucket inexistant.

Get-S3HeadBucket -BucketName amzn-s3-non-existing-bucket

Sortie :

Get-S3HeadBucket: Error making request with Error Code NotFound and Http Status Code NotFound. No further error information was returned by the service.

Exemple 3 : Cette commande génère une erreur avec le code d'état HTTP Interdit pour le bucket existant auquel l'utilisateur n'est pas autorisé à accéder.

Get-S3HeadBucket -BucketName amzn-s3-no-access-bucket

Sortie :

Get-S3HeadBucket: Error making request with Error Code Forbidden and Http Status Code Forbidden. No further error information was returned by the service.
  • Pour plus de détails sur l'API, reportez-vous HeadBucketà la section Référence des Outils AWS pour PowerShell applets de commande (V5).

Python
SDK pour Python (Boto3)
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

class BucketWrapper: """Encapsulates S3 bucket actions.""" def __init__(self, bucket): """ :param bucket: A Boto3 Bucket resource. This is a high-level resource in Boto3 that wraps bucket actions in a class-like structure. """ self.bucket = bucket self.name = bucket.name def exists(self): """ Determine whether the bucket exists and you have access to it. :return: True when the bucket exists; otherwise, False. """ try: self.bucket.meta.client.head_bucket(Bucket=self.bucket.name) logger.info("Bucket %s exists.", self.bucket.name) exists = True except ClientError: logger.warning( "Bucket %s doesn't exist or you don't have access to it.", self.bucket.name, ) exists = False return exists
  • Pour plus de détails sur l'API, consultez HeadBucketle AWS manuel de référence de l'API SDK for Python (Boto3).