2016-03-27 12 views
0

Ich versuche, meine Cloudfront zu machen gehosteten Blog /feed/atom/index.html-/index.xml umleiten. Ich habe das folgende Skript, das Umleitungs-Header für mich einrichten soll:Wie lege ich Metadaten mit aws s3api fest?

#!/bin/sh 

redirect() aws s3api copy-object     \ 
    --copy-source blog.afoolishmanifesto.com$1 \ 
    --bucket blog.afoolishmanifesto.com --key $1 \ 
    --metadata x-amz-website-redirect-location=$2 \ 
    --metadata-directive REPLACE 

redirect /feed/atom/index.html /index.xml 

Nach dem Ausführen des Skripts ich folgende Ausgabe:

{ 
    "CopyObjectResult": { 
     "LastModified": "2016-03-27T07:26:03.000Z", 
     "ETag": "\"40c27e3a5ea160c6695d7f34de8b4dea\"" 
    } 
} 

Und wenn ich refresh das Objekt in der AWS-Konsole Ansicht von S3 ich habe keinen Website Redirect Location (oder x-amz-website-redirect-location) Teil der Metadaten für das betreffende Objekt sehen. Was kann ich tun, um sicherzustellen, dass die Weiterleitung richtig konfiguriert ist?

Anmerkung: Ich habe versucht, die Metadaten als JSON spezifiziert und soweit ich es machte keinen Unterschied erkennen können.

UPDATE: Ich habe die obige Frage das gleiche links, wie es auf Metadaten gilt nach wie vor, aber wenn Sie versuchen, eine Umleitung mit aws erstellen s3api Sie die --website-redirect-location Option verwenden sollten, nicht --metadata.

Antwort

1

Es ist nicht in der Lage einen Schlüssel /feed/atom/index.html in den Eimern zu erstellen, so dass kein Metadaten-Attribut wurde nicht erstellt. Stattdessen sollten Sie feed/atom/index.html erstellen. Ich werde modifizieren mag:

#!/bin/sh 

redirect() aws s3api copy-object     \ 
    --copy-source blog.afoolishmanifesto.com/$1 \ 
    --bucket blog.afoolishmanifesto.com --key $1 \ 
    --metadata x-amz-website-redirect-location=$2 \ 
    --metadata-directive REPLACE 

redirect feed/atom/index.html /index.xml 

In meiner Lösung, bemerken / in --copy-source und das erste Argument Skript fehlt die führende /

zu umleiten
Verwandte Themen