2009-12-02 15 views
5

私はAmazon S3を使用して静的ファイルを提供しています。 Content-Typeが 'text/css'で、ファイルを圧縮していない場合は、okが返されます。返されるコンテンツをzlib.compress()にしてContent-Encodingを 'gzip'に変更しようとすると、ブラウザは結果をデコードできません。 Chromeで、エラーがhttp応答で返されたときにPython zlibをデコードできない

“cannot decode raw data” (NSURLErrorDomain:-1015) 

は、結果がブラウザによって返され、解凍することができることを確認するために、Pythonのzlibのを行うには特別なものがある、Safariで

Error 330 net::ERR_CONTENT_DECODING_FAILED 

のですか?

+0

zlibライブラリの使用方法は次のとおりです。http://stackoverflow.com/questions/2695152/in-python-how-do-i-decode-gzip-encoding – Ric

答えて

2

gzipは、zlibと同じではありません。

0

デコード可能です。問題は送信者が受信者に横たわっていることであり、調和のとれた通信を確保する良い方法ではありません。それを "gzip"の代わりに "zlib"と呼んでみてください。

5

私はこの同じ問題があります。

Content-Encoding: gzip 

サファリ/クローム

は、そのエラーを示しています。あなたはヘッダを送信する場合

しかし、あなたが代わりに送信する場合:

Content-Encoding: deflate 

サファリ/クローム入力罰金をデコードします。

+0

ありがとう!これは私をshnutzを運転していた。 – charleslparker

0

代わりのモジュールzlibを使用して、(originalString = inputFile.read()、次いでcompressedString = zlib.compress(originalString))私は今モジュールgzipを使用しています:

stream = cStringIO.StringIO() 
compressor = gzip.GzipFile(fileobj=stream, mode='w') 
while True: # until EOF 
    chunk = inputFile.read(8192) 
    if not chunk: # EOF? 
     compressor.close() 
     return stream.getvalue() 
    compressor.write(chunk) 

結果は、その後gzipに互換性があります。私はあなたのウェブサーバーの問題を修正するかどうかは分かりません。

関連する問題