Corporate Home Open Source Home
Syndicate content
Eucalyptus

Patch for s3cmd-0.9.8.3

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()