wake-up-neo.net

AWS S3 CLI CP-Datei und Hinzufügen von Metadaten

Es wurde versucht, eine lokale Datei mit dem Namen test.txt in meinen S3-Bucket zu kopieren und der Datei Metadaten hinzuzufügen.

Aber es wird immer ein Fehler ausgegeben:

Argument --metadata-Direktive: Ungültige Auswahl, gültige Auswahl sind: COPY | REPLACE

Ist es möglich, dies mit dem Befehl cp zu tun, da ich die Dokumente verstehe, sollte es möglich sein. AWS CLI CP DOCS

Dies sind die Befehle, die ich ausprobiert habe:

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

Betriebssystem: macOS Sierra Version 10.12.1

Bearbeiten

Erwähnenswert ist, dass das Hochladen einer Datei ohne das Flag --metadata problemlos funktioniert.

Hmm, ich habe die Hilfe für meine Version von cli mit aws s3 cp help überprüft. Es hat sich herausgestellt, dass --metadata nicht als Option aufgeführt ist, wie dies in den Dokumenten unter dem oben angegebenen Link der Fall ist.

Wenn eine ältere Version von aws cli läuft

Use aws s3api put-object

So laden Sie eine Datei in einen Bucket hoch und fügen Metadaten hinzu:

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

Tatsächlich wurde die Unterstützung für die Metadatenoption seit 1.9.10 hinzugefügt.

aws s3 Unterstützung für benutzerdefinierte Metadaten in cp, mv und sync hinzugefügt.

also aktualisiere deine aws cli auf diese version (oder noch besser auf die neueste) - und der wert metadata muss also eine map sein

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

Installiere s3cmd tools (kostenlos) und rufe s3cmd modify auf --add-header x-amz-meta-foo: bar s3: /// modify: 's3: ///'

foo - key bar - wert

0
Srini Sydney