web-dev-qa-db-fra.com

Fichier CP AWS S3 CLI et ajout de métadonnées

Essayer de copier un fichier local nommé test.txt dans mon compartiment s3 et ajouter des métadonnées au fichier.

Mais cela imprime toujours l'erreur:

argument --metadata-directive: choix non valide, les choix valides sont: COPY | REMPLACER

Est-il possible de faire cela avec la commande cp, si j'ai bien compris, cela devrait être possible. AWS CLI CP DOCS

Voici les commandes que j'ai essayées:

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata x-amz-meta-cms-id:34533452

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata x-amz-meta-cms-id:34533452

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata '{"x-amz-meta-cms-id":"34533452"}'

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'

aws --version: aws-cli/1.9.7 Python/2.7.10 Darwin/16.1.0 botocore/1.3.7

Système d'exploitation: macOS Sierra version 10.12.1

Modifier

Il est à noter que le téléchargement d'un fichier sans l'indicateur --metadata fonctionne bien.

Hmm, j'ai consulté l'aide de ma version de cli avec aws s3 cp help Il s'avère que l'option --metadata n'est pas répertoriée, contrairement à la documentation située sur le lien ci-dessus.

Si vous utilisez une ancienne version de aws cli

Use aws s3api put-object

Comment télécharger un fichier dans un compartiment et ajouter des métadonnées:

aws s3api put-object --bucket a-bucket --key test.txt --body test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'

Docs: AWS S3API DOCS

7
Jonathan Andersson

En effet, l'option de prise en charge des métadonnées a été ajoutée depuis 1.9.10

aws s3 Ajout de la prise en charge des métadonnées personnalisées dans cp, mv et sync.

donc, mettez à niveau votre aws cli vers cette version (ou mieux encore vers la dernière) - et la valeur metadata doit être une carte

aws s3 cp test.txt s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
7
Frédéric Henri

Installez s3cmd tools (gratuitement) et appelez s3cmd modify --add-header x-amz-meta-foo: bar s3: /// modify: 's3: ///'

foo - barre de clé - valeur

0
Srini Sydney