Ecosystem Tool Source:
diff -ur s3cmd-0.9.8.3-orig/S3/Config.py s3cmd-0.9.8.3/S3/Config.py
--- s3cmd-0.9.8.3-orig/S3/Config.py 2008-06-10 19:22:10.000000000 -0700
+++ s3cmd-0.9.8.3/S3/Config.py 2009-08-12 13:35:43.000000000 -0700
@@ -15,6 +15,7 @@
secret_key = ""
host_base = "s3.amazonaws.com"
host_bucket = "%(bucket)s.s3.amazonaws.com"
+ service_path = ""
simpledb_host = "sdb.amazonaws.com"
verbosity = logging.WARNING
send_chunk = 4096
diff -ur s3cmd-0.9.8.3-orig/S3/S3.py s3cmd-0.9.8.3/S3/S3.py
--- s3cmd-0.9.8.3-orig/S3/S3.py 2008-07-03 05:33:39.000000000 -0700
+++ s3cmd-0.9.8.3/S3/S3.py 2009-08-12 13:38:57.000000000 -0700
@@ -264,9 +264,12 @@
def create_request(self, operation, bucket = None, object = None, headers = None, extra = None, **params):
resource = { 'bucket' : None, 'uri' : "/" }
if bucket:
- resource['bucket'] = str(bucket)
- if object:
- resource['uri'] = "/" + self.urlencode_string(object)
+# resource['bucket'] = str(bucket)
+ resource['uri'] = "/" + self.urlencode_string(bucket)
+ if object:
+# resource['uri'] = "/" + self.urlencode_string(object)
+ resource['uri'] = resource['uri'] + "/" + self.urlencode_string(object)
+
if extra:
resource['uri'] += extra
@@ -280,6 +283,9 @@
if not headers.has_key("x-amz-date"):
headers["x-amz-date"] = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
+
+ if self.config.service_path:
+ resource['uri'] = self.config.service_path + resource['uri']
method_string = S3.http_methods.getkey(S3.operations[operation] & S3.http_methods["MASK"])
signature = self.sign_headers(method_string, resource, headers)
@@ -467,8 +473,8 @@
for header in headers.keys():
if header.startswith("x-amz-"):
h += header+":"+str(headers[header])+"\n"
- if resource['bucket']:
- h += "/" + resource['bucket']
+# if resource['bucket']:
+# h += "/" + resource['bucket']
h += resource['uri']
debug("SignHeaders: " + repr(h))
return base64.encodestring(hmac.new(self.config.secret_key, h, sha).digest()).strip()
