Beispiel #1
0
class Adapter:
    def __init__ ( self, config ):
        self.host = config.host
        self.access_key = config.access_key
        self.secret_key = config.secret_key
        self.oss = OssAPI ( self.host, self.access_key, self.secret_key )
        self.assembly = OSSAssembly ( )

    def put_object ( self, bucket, key, data ):

        if isinstance ( data, basestring ):
            data = StringIO ( data )
        return self.oss.put_object_from_fp ( bucket, key,\
            data )


    def get_all_buckets ( self ):
        res =  self.oss.list_all_my_buckets ( )
        return self.assembly.load_buckets ( res )

    def get_all_objects ( self, bucket_name, prefix="", marker = "", delimiter = "", max_keys = 1000 ):
        def filter ( keys, bucket_name, prefix = "", marker = "", delimiter = "", max_keys = 1000 ):
            new_keys = []
            prefix_len = len ( prefix )

            for key in keys:
                if key.name == prefix:
                    continue
                new_keys.append ( key )

            return new_keys
        res = self.oss.list_bucket ( bucket_name, prefix, marker, delimiter, max_keys )
        keys = self.assembly.load_objects ( Bucket ( bucket_name ), res )
        return filter ( keys, bucket_name, prefix, marker, delimiter, max_keys )
Beispiel #2
0
class TestOSSAssembly:
	def setUp ( self ):
		self.assembly = OSSAssembly ( )
		self.assembly.handler_factory = MockOSSHandlerFactory ( )
		self.assembly.parser_factory  = MockSaxParserFactory  ( )

	def test_load_buckets ( self ):
		buckets = self.assembly.load_buckets ( StringIO ( ) )
		assert "bucket1" == buckets[0].name
		assert "bucket2" == buckets[1].name

	def test_load_objects ( self ):
		objects = self.assembly.load_objects ( Bucket ( name = "bucket1" ), StringIO ( ) )
		assert "prefix1" == objects[0].name
		assert "object1" == objects[1].name