Public Cloud OVHcloud - Object Storage aws s3api put-object Invalid Argument ?
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Object Storage aws s3api put-object Invalid Argument ?

Von
ThierryF30
Erstellungsdatum 2025-02-11 09:54:29 (edited on 2025-03-25 08:40:18) in Public Cloud OVHcloud

Bonjour la communauté

Depuis une machine sous Debian 11 avec aws-cli 1.37.16 et Python 3.9.2 et à partir de la documentation Object Storage - Premiers pas avec Object Storage :

Bucket nommée "monbucketdetest" en CLI : 

aws s3 mb s3://monbucketdetest

image

Avec le plus de droits possible...

image

Fichiers configurer sur mon debian :

image

"uploader" mon fichier "monpremierobject.txt" en CLI à l'aide de la commande suivante : 

aws s3api put-object --bucket monbucketdetest --key monpremierobject.txt --body ./monpremierobject.txt

image

Test avec "cp"

aws s3 cp ~/monpremierobject.txt s3://monbucketdetest/monpremierobject.txt

image

J'ai finit par "uploader" mon fichier via l'interface web OVHcloud ...

J'ai "télécharger" "monpremierobject.txt" en CLI à l'aide de la commande suivante : 

aws s3api get-object --bucket monbucketdetest --key monpremierobject.txt ./monpremierobject.txt

image

J'ai voulu "uploader" un nouveau object "monsecondobject.txt" en CLI  : 

aws s3api put-object --bucket monbucketdetest --key monsecondobject.txt --body ./monsecondobject.txt

image

Une idée pourquoi il m'indique "image" ?
Je sèche...

Merci d'avance pour vos réponses/solutions.


Akzeptierte Lösung

Bonjour,

J'ai rencontré un soucis similaire sur les commandes aws s3 cp .... En utilisant l'argument -debug, j'ai remarqué que l'API refusait la valeur "STREAMING-UNSIGNED-PAYLOAD-TRAILER" pour le Header HTTP "x-amz-content-sha256". J'ai compris que ce refus fait suite à un changement de comportement par défaut depuis la version 1.36 de boto3 (libraries utilisées par AWS CLI) et voici l'annonce associée.

Mon contournement consiste à explicitement donner la valeur when_required pour les paramètres request_checksum_calculation et response_checksum_validation , comme indiqué dans cet article. Dans mon cas, j'ai choisi de définir le paramétrage avec des variables d'environnement:

export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
aws s3 cp ...

Ainsi la commande fonctionne de mon côté.
En espérant que cela aidera.

2 Antworten ( Latest reply on 2025-03-25 12:14:18 Von
Fabrice
)

Bonjour,

J'ai rencontré un soucis similaire sur les commandes aws s3 cp .... En utilisant l'argument -debug, j'ai remarqué que l'API refusait la valeur "STREAMING-UNSIGNED-PAYLOAD-TRAILER" pour le Header HTTP "x-amz-content-sha256". J'ai compris que ce refus fait suite à un changement de comportement par défaut depuis la version 1.36 de boto3 (libraries utilisées par AWS CLI) et voici l'annonce associée.

Mon contournement consiste à explicitement donner la valeur when_required pour les paramètres request_checksum_calculation et response_checksum_validation , comme indiqué dans cet article. Dans mon cas, j'ai choisi de définir le paramétrage avec des variables d'environnement:

export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
aws s3 cp ...

Ainsi la commande fonctionne de mon côté.
En espérant que cela aidera.

Bonjour,

Avec pas mal de retard je vous remercie pour cette réponse très claire et détaillée. 
Cette solution fonctionne de notre coté également.