Wie legen Sie ein Standardstammobjekt für Unterverzeichnisse auf einer statisch gehosteten Website in Cloudfront fest? Insbesondere möchte www.example.com/subdir/index.html
ich bedient werden, wann immer der Benutzer dies wünscht www.example.com/subdir
. Beachten Sie, dass dies für die Bereitstellung einer statischen Website in einem S3-Bucket vorgesehen ist. Darüber hinaus möchte ich eine Ursprungszugriffsidentität verwenden, um den Zugriff auf den S3-Bucket nur auf Cloudfront zu beschränken.
Jetzt ist mir bewusst, dass Cloudfront anders funktioniert als S3 und Amazon speziell :
Das Verhalten von CloudFront-Standardstammobjekten unterscheidet sich vom Verhalten von Amazon S3-Indexdokumenten. Wenn Sie einen Amazon S3-Bucket als Website konfigurieren und das Indexdokument angeben, gibt Amazon S3 das Indexdokument zurück, auch wenn ein Benutzer ein Unterverzeichnis im Bucket anfordert. (Eine Kopie des Indexdokuments muss in jedem Unterverzeichnis enthalten sein.) Weitere Informationen zum Konfigurieren von Amazon S3-Buckets als Websites und zu Indexdokumenten finden Sie im Kapitel Hosting von Websites auf Amazon S3 im Amazon Simple Storage Service-Entwicklerhandbuch.
Obwohl Cloudfront es uns ermöglicht, ein Standardstammobjekt anzugeben, funktioniert dies nur für www.example.com
und nicht für www.example.com/subdir
. Um diese Schwierigkeit zu umgehen, können wir den Ursprungsdomänennamen so ändern, dass er auf den von S3 angegebenen Website-Endpunkt verweist. Dies funktioniert hervorragend und ermöglicht die einheitliche Angabe der Stammobjekte. Leider scheint dies nicht mit den Ursprungszugriffsidentitäten kompatibel zu sein . Im Einzelnen heißt es in den obigen Links:
Wechseln Sie in den Bearbeitungsmodus:
Webdistributionen - Klicken Sie auf die Registerkarte Ursprünge, klicken Sie auf den Ursprung, den Sie bearbeiten möchten, und klicken Sie auf Bearbeiten. Sie können eine Ursprungszugriffsidentität nur für Ursprünge erstellen, für die der Origin-Typ S3 Origin ist.
Grundsätzlich verwenden wir zum Festlegen des richtigen Standardstammobjekts den S3-Website-Endpunkt und nicht den Website-Bucket selbst. Dies ist nicht kompatibel mit der Verwendung der Ursprungszugriffsidentität. Als solche laufen meine Fragen auf beides hinaus
Ist es möglich, ein Standardstammobjekt für alle Unterverzeichnisse für eine statisch gehostete Website in Cloudfront anzugeben?
Ist es möglich, eine Ursprungszugriffsidentität für Inhalte einzurichten, die von Cloudfront bereitgestellt werden, wobei der Ursprung ein S3-Website-Endpunkt und kein S3-Bucket ist?