def __move_corrupt_file(self, key): corrupt_path = "corrupt_data_files{}".format(key) print "Moving corrupt file '{}' to '{}' for further analysis.".format( key, corrupt_path) body = self.s3.get_object( util.get_path_without_leading_seperator(key))["Body"].read() self.s3.put_object(corrupt_path, body) self.s3.delete(util.get_path_without_leading_seperator(key))
def size(self, key): try: response = self.__client.head_object(Bucket=self.__bucket, Key=util.get_path_without_leading_seperator(key)) except ClientError as e: raise e return response['ContentLength']
def put_object(self, key, body, expiration=None): params = dict({}) params['Key'] = util.get_path_without_leading_seperator(key) params['Body'] = body params['Bucket'] = self.__bucket if expiration: params['Expires'] = expiration return self.client.put_object(**params)
def __delete_wrapper(self, key): return {"Key": util.get_path_without_leading_seperator(key)}
def get_object(self, key): params = dict({}) params['Key'] = util.get_path_without_leading_seperator(key) params['Bucket'] = self.__bucket return self.client.get_object(**params)
def read(self, key): response = self.__client.get_object( Bucket=self.__bucket, Key=util.get_path_without_leading_seperator(key)) return response["Body"].read()
def __init__(self, key, sep): self.__key = util.get_path_without_leading_seperator(key) self.__parts = self.__key.split(sep)