Tar.gz-Datei über AWS Cloudfront bereitstellen?

Tar.gz-Datei über AWS Cloudfront bereitstellen?

Ich möchte im S3-Bucket, in dem die Assets meiner Website gespeichert sind, Ordnung halten.

Derzeit lade ich als Teil der CI/CD-Pipeline alle Assets auf S3 hoch. Das ist etwas chaotisch geworden, da die generierten Dateien nicht immer den gleichen Namen haben, sodass ich jetzt viele veraltete Dateien habe. Eine schnelle Lösung wäre, den S3-Bucket vor jeder neuen Version zu leeren, aber ich habe über etwas anderes nachgedacht.

Durch Ausführen dieses Befehls kann ich aus meinem Dist-Ordner eine Datei generieren:

tar -zcvf MyWebApp.tar.gz dist

Ist es möglich, nur diese Tar.gz-Datei in meinen S3-Bucket hochzuladen, sodass sie bei jeder neuen Version ersetzt und über Cloudfront bereitgestellt wird?

Antwort1

CloudFront kann nicht tun, was Sie möchten. Sie müssen einzelne Dateien bereitstellen. CloudFront nimmt einfach eine Anfrage entgegen und stellt die Datei von S3 bereit. Es bietet Ihnen nicht die Möglichkeit, etwas zu entpacken.

Es ist normal, dass Asset-Pipelines eindeutige Asset-Dateien (mit Hash-Namen) generieren, die auf dem Asset-Server verbleiben können, bis sie ablaufen. Wenn Sie neue Assets generieren, können Sie die alten grundsätzlich immer wegwerfen. Die Asset-Pipeline sollte keine neuen Namen für unveränderten Inhalt erstellen, damit Clients den zwischengespeicherten Inhalt weiterhin verwenden können.

Zusammenfassend lässt sich also sagen, dass Sie beim Aktualisieren von Assets diejenigen aktiv entfernen sollten, die Sie nicht mehr benötigen, aus S3.

verwandte Informationen