In der S3-REST-API füge ich Metadaten zu einem vorhandenen Objekt hinzu, indem ich den PUT (Copy) -Befehl benutze und einen Schlüssel an den gleichen Ort mit 'x-amz-metadata-directive' = 'REPLACE'
Ich möchte den Namen der heruntergeladenen Datei ändern, indem ich Folgendes setze:
%Vor%Dies legt die Metadaten richtig fest, aber wenn ich die Datei herunterlade, wird immer noch der Schlüsselname anstelle von 'foo.bar' verwendet
Ich benutze ein Software-Tool S3 Browser, um die Metadaten zu sehen und es sieht richtig aus (abgesehen von 'Content-Disposition'
ist alles Kleinbuchstaben, da das war S3 bitten Sie mich zu unterschreiben)
Dann mit S3 Browser habe ich nur gedrückt, dann speichern, ohne etwas zu ändern und jetzt funktioniert es ???
Was fehlt mir, wie funktioniert das Einstellen einer Metadaten 'Content-Disposition: attachment; filename=foo.bar;'
von meiner Web App nicht, funktioniert aber von S3 Browser?
Gelöst:
Die Doco bei Ссылка
scheint falsch zu sein, heißt es:
Beachten Sie, wie die 'x-amz-' Header sortiert, Leerzeichen abgeschnitten, konvertiert werden und mehrere Header mit demselben Namen mit einem Komma verbunden wurden, um die Werte zu trennen.
Beachten Sie, dass nur die Content-Type- und Content-MD5HTTPentity-Header in StringToSign angezeigt werden. Die OtherContent- * -Entity-Header nicht. Content-Disposition muss jedoch spezifisch festgelegt werden und nicht als: x-amz-meta-Content-Disposition
enthalten seinEs funktioniert jetzt gut.