Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

don't add charset if it's already there, make param a comma delimited…

… str, not multiple
  • Loading branch information...
commit 833f07bb63efb6273c2b0bcd68898a8d295fd22d 1 parent 4d29dd4
Christopher Noyes authored

Showing 3 changed files with 14 additions and 6 deletions. Show diff stats Hide diff stats

  1. +1 1  S3/Config.py
  2. +12 4 S3/S3.py
  3. +1 1  s3cmd
2  S3/Config.py
@@ -40,7 +40,7 @@ class Config(object):
40 40 proxy_port = 3128
41 41 encrypt = False
42 42 dry_run = False
43   - add_encoding_ext = []
  43 + add_encoding_exts = ""
44 44 preserve_attrs = True
45 45 preserve_attrs_list = [
46 46 'uname', # Verbose owner Name (e.g. 'root')
16 S3/S3.py
@@ -339,10 +339,17 @@ def website_delete(self, uri, bucket_location = None):
339 339
340 340 return response
341 341
342   - def add_encoding(self, filename):
  342 + def add_encoding(self, filename, content_type):
  343 + if content_type.find("charset=") != -1:
  344 + return False
  345 + exts = self.config.add_encoding_exts.split(',')
  346 + if exts[0]=='':
  347 + return False
343 348 parts = filename.rsplit('.',2)
  349 + if len(parts) < 2:
  350 + return False
344 351 ext = parts[1]
345   - if ext in self.config.add_encoding_ext:
  352 + if ext in exts:
346 353 return True
347 354 else:
348 355 return False
@@ -367,13 +374,14 @@ def object_put(self, filename, uri, extra_headers = None, extra_label = ""):
367 374
368 375 ## MIME-type handling
369 376 content_type = self.config.mime_type
  377 + print(content_type)
370 378 if not content_type and self.config.guess_mime_type:
371 379 content_type = mime_magic(filename)
372 380 if not content_type:
373 381 content_type = self.config.default_mime_type
374   -
  382 + print(content_type)
375 383 ## add charset to content type
376   - if self.add_encoding(filename):
  384 + if self.add_encoding(filename, content_type):
377 385 content_type = content_type + ";charset=" + self.config.encoding.upper()
378 386
379 387 debug("Content-Type set to '%s'" % content_type)
2  s3cmd
@@ -1524,7 +1524,7 @@ def main():
1524 1524 optparser.add_option( "--add-header", dest="add_header", action="append", metavar="NAME:VALUE", help="Add a given HTTP header to the upload request. Can be used multiple times. For instance set 'Expires' or 'Cache-Control' headers (or both) using this options if you like.")
1525 1525
1526 1526 optparser.add_option( "--encoding", dest="encoding", metavar="ENCODING", help="Override autodetected terminal and filesystem encoding (character set). Autodetected: %s" % preferred_encoding)
1527   - optparser.add_option( "--add-encoding-ext", dest="add_encoding_ext", action="append", metavar="EXTENSION", help="Add encoding to this ext when uploading to S3, may be used multiple times")
  1527 + optparser.add_option( "--add-encoding-exts", dest="add_encoding_exts", metavar="EXTENSIONs", help="Add encoding to these comma delimited extensions i.e. (css,js,html) when uploading to S3 )")
1528 1528 optparser.add_option( "--verbatim", dest="urlencoding_mode", action="store_const", const="verbatim", help="Use the S3 name as given on the command line. No pre-processing, encoding, etc. Use with caution!")
1529 1529
1530 1530 optparser.add_option( "--disable-multipart", dest="enable_multipart", action="store_false", help="Disable multipart upload on files bigger than --multipart-chunk-size-mb")

0 comments on commit 833f07b

Please sign in to comment.
Something went wrong with that request. Please try again.