2016-08-11 8 views
0

Ich habe Javascript-Datei in aws s3 Bucket hochgeladen und für Gzip-Komprimierung habe ich folgende Metadaten festgelegt. Auch ich habe Datei als öffentlich gemacht.gzip funktioniert nicht für aws s3 Assets

Content-Encoding: gzip 

Es gibt bereits eine Meta-Daten wird

Content-Type: application/x-javascript 

Fehler, wenn sie von Browser Zugriff auf

This webpage is not available ERR_CONTENT_DECODING_FAILED 

url Zugriff wie diese

https://s3-url.amazonaws.com/bucket-name/assets/js/angular.js 
+0

Sie könnten Probleme aufgrund von Serverproblemen von aws Ich bin auch mit dem Problem mit aws konfrontiert. –

+0

Haben Sie die Datei tatsächlich mit 'gzip' komprimiert, bevor Sie sie hochgeladen haben? –

+0

@Michael, Nein. Ich komprimiere nicht vor dem Upload, muss ich das tun? –

Antwort

2

Einstellung 10 ändert nicht die Inhaltscodierung Ihres Objekts. Dies wird verwendet, um beschreiben die Codierung, die Sie angewendet haben.

Wenn Sie diese Einstellung vornehmen, ohne die gzip-Komprimierung auf das Objekt anzuwenden, führt dies zu Fehlern, wie Sie sie kennen. Dies ist der Browser, der sich darüber beschwert, dass Sie (über den Header) "behauptet" haben, dass der Inhalt tatsächlich mit gzip verschlüsselt wurde, obwohl dies tatsächlich nicht der Fall war.

In ähnlicher Weise führt das Hochladen eines gezippten Objekts ohne Setzen der Kopfzeile zu einem unbrauchbaren Download, da der empfangende Benutzeragent (Browser) keine Möglichkeit hat, den Inhalt zu dekodieren oder es sogar zu versuchen.

Beachten Sie, dass wenn Sie eine Datei auf Ihrem Computer mit der Datei gzip -9 somefile.js gzip kopieren, wird der Name geändert und am Ende .gz hinzugefügt, wobei der Name somefile.js.gz bleibt. Entfernen Sie die .gz vor dem Hochladen. Es wird nicht benötigt und natürlich möchten Sie Ihre Links nicht ändern müssen.

Die obige gibt an, dass gzip maximale Komprimierung verwenden sollte, was wahrscheinlich ist, was Sie wollen.