def add_metadata_headers(self, headers, metadata): if metadata: for i in metadata.keys(): key = str(i) for v in metadata.get(key): value = str(v) headers[(Utils.METADATA_PREFIX + Utils.urlencode(key))] = Utils.urlencode(value) return headers
def add_headers(self, headers, prefix): new_headers = {} if headers: for i in headers.keys(): key = str(i) for v in headers.get(key): value = str(v) new_headers[(prefix + Utils.urlencode(key))] = Utils.urlencode(value) return new_headers
def make_bare_url(self, bucket, key): buf = ["https://" if self.is_secure else "http://"] buf.append(self.server + ":" + str(self.port) + "/" + bucket) buf.append("/" + Utils.urlencode(key)) return ''.join(item for item in buf)
def get_object(self, bucket, key, headers = None): conn = self.make_request("GET", bucket, Utils.urlencode(key), None, headers, None) result = conn.getresponse() if int(result.status) < 400: response = GetResponse.get_object_factory(result) return response
def get_object_acl(self, bucket, key, headers): if key == None: key = "" path_args = {} path_args["acl"] = None conn = self.make_request("GET", bucket, Utils.urlencode(key), path_args, headers, None) result = conn.getresponse() if int(result.status) < 400: return result.read()
def create_object(self, bucket, key, s3_object, headers = None): conn = self.make_request("PUT", bucket, Utils.urlencode(key), None, headers, s3_object) CHUNKSIZE = 65563 if s3_object.file_path: with open(Utils.decode_utf(s3_object.file_path), 'rb') as f: while True: chunk = f.read(CHUNKSIZE) if not chunk: break conn.send(chunk) return conn.getresponse()
def get_acl_response(self, bucket, key, headers = None): if key == None: key = "" path_args = {} path_args["acl"] = None conn = self.make_request("GET", bucket, Utils.urlencode(key), path_args, headers, None) result = conn.getresponse() if int(result.status) < 400: xml = result.read() response = ACLResponse.acl_factory(xml) return response
def set_object_acl(self, bucket, key, acl_path, headers): obj = S3Object(acl_path, None) path_args = {} path_args["acl"] = None conn = self.make_request("PUT", bucket, Utils.urlencode(key), path_args, headers, obj) CHUNKSIZE = 65563 if acl_path: with open(acl_path, 'rb') as f: while True: chunk = f.read(CHUNKSIZE) if not chunk: break conn.send(chunk) return conn.getresponse()
def create_object2(self, bucket, key, data, headers=None): conn = self.make_request2("PUT", bucket, Utils.urlencode(key), data, headers) conn.send(data) return conn.getresponse()
def get_acl(self, bucket, key, headers): path_args = {} path_args["acl"] = None return self.generate_url("GET", bucket, Utils.urlencode(key), path_args, headers)
def get(self, bucket, key, headers): urlstr = self.generate_url("GET", bucket, Utils.urlencode(key), None, headers) return urlstr
def delete_object(self, bucket, key, headers): conn = self.make_request("DELETE", bucket, Utils.urlencode(key), None, headers, None) return conn.getresponse()