예제 #1
0
    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
예제 #2
0
    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)
예제 #4
0
 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)
예제 #5
0
    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
예제 #6
0
 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() 
예제 #7
0
 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()
예제 #8
0
 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
예제 #9
0
    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()
예제 #10
0
 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
예제 #13
0
 def delete_object(self, bucket, key, headers):
     
     conn = self.make_request("DELETE", bucket, Utils.urlencode(key), None, headers, None)
     return conn.getresponse()
예제 #14
0
 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)
예제 #15
0
    def get(self, bucket, key, headers):

        urlstr = self.generate_url("GET", bucket, Utils.urlencode(key), None, headers)
        return urlstr