Utiliser les conditions Wait pour un objet
Vous pouvez utiliser les commandes wait
pour mettre en pause l’exécution de votre script jusqu’à ce qu’une condition spécifique soit remplie pour votre bucket. Ceci est particulièrement utile pour les flux de travail automatisés, où vous devez vous assurer qu’un certain état est atteint avant de procéder à l’exécution suivante.
Si vous avez besoin de récupérer les métadatas d’un objet spécifique, voir Obtenir des informations sur les metadata d’un objet.
Utiliser les conditions Wait pour un objet avec AWS CLI (s3api)
Avant de commencer : Installez et configurez AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI. |
Attendre qu’un objet existe
Pour s’assurer qu’un objet existe et qu’il est accessible avant d’effectuer d’autres actions, utilisez la commande wait object-exists en suivant cette syntaxe :
$ aws s3api wait object-exists \
--profile YOUR_PROFILE \
--bucket BUCKET \
--if-match "\"12345a6b76656da1b64f287c8627af7\"" \
--if-modified-since "2024-01-10" \
--if-none-match "\"12345a6b76656da1b64f287c8627af7\"" \
--if-unmodified-since "2024-01-10" \
--key OBJECT \
--version-id "12345" \
--part-number "1" \
--endpoint https://oos.eu-west-2.outscale.com
Cette commande contient les attributs suivants que vous devez spécifier :
-
(optionnel)
profile
: Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI. -
bucket
: Le nom du bucket contenant l’objet dont vous voulez vérifier l’existence. -
(optionnel)
if-match
: Ne demande l’objet que si son ETag correspond à celui que vous avez indiqué pour cet attribut. -
(optionnel)
if-modified-since
: Ne demande l’objet que s’il a été modifié après la date (au format ISO 8601) indiquée pour cet attribut. -
(optionnel)
if-none-match
: Ne demande l’objet que si son ETag ne correspond pas à celui que vous avez indiqué pour cet attribut. -
(optionnel)
if-unmodified-since
: Ne demande l’objet que s’il n’a pas été modifié depuis la date (au format ISO 8601) indiquée pour cet attribut.Si les différentes conditions ne sont pas remplies, la commande renverra diverses erreurs :
error 412 : precondition failed
pourif-match
etif-unmodified-since
, eterror 304 : not modified
pourif-modified-since
etif-none-match
. -
key
: Le nom de l’objet dont vous voulez vérifier l’existence. -
(optionnel)
version-id
: L’ID de la version de l’objet dont vous voulez vérifier l’existence. Pour en savoir plus, voir Utiliser le bucket versioning. -
(optionnel)
part-number
: Le numéro de la partie de l’objet en cours de lecture (entre1
et10000
, les deux inclus). Pour en savoir plus, voir Utiliser un dépôt partitionné. -
endpoint
: Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête. Pour en savoir plus, voir Installer et configurer AWS CLI.
La commande interroge le bucket toutes les 5 secondes jusqu’à ce qu’un état de réussite soit atteint, après quoi la commande ne doit renvoyer aucun résultat.
Néanmoins, après 20 échecs successifs (100 secondes au total), la commande renvoie le message d’erreur suivant :
Waiter ObjectExists failed: Max attempts exceeded. Previously accepted state: Matched expected HTTP status code: 404
Attendre qu’un objet n’existe plus
Pour s’assurer qu’un objet n’existe plus et n’est plus accessible avant d’effectuer d’autres actions, utilisez la commande wait object-not-exists en suivant cette syntaxe :
$ aws s3api wait object-not-exists \
--profile YOUR_PROFILE \
--bucket BUCKET \
--if-match "\"12345a6b76656da1b64f287c8627af7\"" \
--if-modified-since "2024-01-10" \
--if-none-match "\"12345a6b76656da1b64f287c8627af7\"" \
--if-unmodified-since "2024-01-10" \
--key OBJECT \
--version-id "12345" \
--part-number "1" \
--endpoint https://oos.eu-west-2.outscale.com
-
(optionnel)
profile
: Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI. -
bucket
: Le nom du bucket contenant l’objet dont vous voulez attendre qu’il n’existe plus. -
(optionnel)
if-match
: Ne demande l’objet que si son ETag correspond à celui que vous avez indiqué pour cet attribut. -
(optionnel)
if-modified-since
: Ne demande l’objet que s’il a été modifié après la date (au format ISO 8601) indiquée pour cet attribut. -
(optionnel)
if-none-match
: Ne demande l’objet que si son ETag ne correspond pas à celui que vous avez indiqué pour cet attribut. -
(optionnel)
if-unmodified-since
: Ne demande l’objet que s’il n’a pas été modifié depuis la date (au format ISO 8601) indiquée pour cet attribut. -
key
: Le nom de l’objet dont vous voulez attendre qu’il n’existe plus. -
(optionnel)
version-id
: L’ID de la version de l’objet dont vous voulez vérifier l’existence. Pour en savoir plus, voir Utiliser le bucket versioning. -
(optionnel)
part-number
: Le numéro de la partie de l’objet en cours de lecture (entre1
et10000
, les deux inclus). Pour en savoir plus, voir Utiliser un dépôt partitionné. -
endpoint
: Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête. Pour en savoir plus, voir Installer et configurer AWS CLI.
La commande interroge le bucket toutes les 5 secondes jusqu’à ce qu’un état de réussite soit atteint, après quoi la commande ne doit renvoyer aucun résultat.
Néanmoins, après 20 échecs successifs (100 secondes au total), la commande renvoie le message d’erreur suivant :
Waiter ObjectNotExists failed: Max attempts exceeded.
Pages connexes
AWS™ et Amazon Web Services™ sont des marques de commerce d'Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.