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
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"}'
Installiere s3cmd tools (kostenlos) und rufe s3cmd modify auf --add-header x-amz-meta-foo: bar s3: /// modify: 's3: ///'
foo - key bar - wert