2009-12-02 27 views
5

Statik dosyaları sunmak için Amazon S3 kullanıyorum. Content-Type sadece 'text/css' olduğunda ve dosyayı sıkıştırmamış durumdayken, buna geri döneriz. Döndürülecek içeriği zlib.compress() işlevini dener ve İçerik Kodlamasını 'gzip' olarak değiştirirseniz, tarayıcı sonucu çözemez. Chrome'da, hataPython zlib bir http yanıtıyla döndürüldüğünde çözülemez

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

emin sonucu döndürülür ve tarayıcı tarafından sıkıştırılmış olabilir yapmak için Python en zlib ile ilgisi özel bir şey var mı Safari'de

Error 330 net::ERR_CONTENT_DECODING_FAILED 

mı?

+0

http://stackoverflow.com/questions/2695152/in-python-how-do-i-decode-gzip-encoding – Ric

cevap

0

Bu kod çözülebilir. Sorun şu ki, gönderici alıcıya yalan söylüyor - uyumlu bir iletişim sağlamanın iyi bir yolu değil. "Gzip" yerine "zlib" demeyi deneyin.

5

Aynı sorun var.

Content-Encoding: gzip 

Safari/Chrome

o hatayı gösterir: Eğer başlık gönderirseniz

.

Ama bunun yerine gönderirseniz:

Content-Encoding: deflate 

Safari/Krom giriş cezası çözümler.

+0

Teşekkürler! Bu beni shnutz kullanıyordu. – charleslparker

0

yerine (daha sonra originalString = inputFile.read() ve compressedString = zlib.compress(originalString)) modülünü zlib, kullanmanın şimdi modülü gzip kullanıyorum:

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) 

Sonuç daha sonra gzip için uyumludur; Web sunucusu sorununuzu da düzeltip düzeltmediğini bilmiyorum.

İlgili konular