Ejemplo n.º 1
0
  def test_delete(self): 
    client = Client(TEST_NS, HOSTS)
    key = 'test_file_%s_%s' % (random.random(), time.time())

    client.new_file(key).write("SPAM")
    paths = client.get_paths(key)
    self.assertTrue(paths)

    client.delete(key)
    paths = client.get_paths(key)
    self.assertFalse(paths)
Ejemplo n.º 2
0
def test_delete():
    client = Client(TEST_NS, HOSTS)
    key = 'test_file_%s_%s' % (random.random(), time.time())

    client.new_file(key).write("SPAM")
    paths = client.get_paths(key)
    assert paths

    client.delete(key)
    paths = client.get_paths(key)
    assert not paths
Ejemplo n.º 3
0
    def test_delete(self):
        client = Client(TEST_NS, HOSTS)
        key = 'test_file_%s_%s' % (random.random(), time.time())

        client.new_file(key).write("SPAM")
        paths = client.get_paths(key)
        self.assertTrue(paths)

        client.delete(key)
        paths = client.get_paths(key)
        self.assertFalse(paths)
Ejemplo n.º 4
0
def test_list_keys():
    keys = ["spam", "egg", "ham"]
    domain = "test:list_keys:%s:%s:%s" % (random.random(), time.time(), TEST_NS)
    moga.create_domain(domain)
    mogc = Client(domain, HOSTS)

    for k in keys:
        mogc.store_content(k, k)

    try:
        files = mogc.list_keys()
        assert len(files) == 3

        files = mogc.list_keys(limit=1)
        assert len(files) == 1

        files = mogc.list_keys(prefix='sp')
        assert len(files) == 1
    finally:
        for k in keys:
            mogc.delete(k)
        moga.delete_domain(domain)
Ejemplo n.º 5
0
    def test_list_keys(self):
        keys = ["spam", "egg", "ham"]
        domain = "test:list_keys:%s:%s:%s" % (random.random(), time.time(),
                                              TEST_NS)
        self.moga.create_domain(domain)
        mogc = Client(domain, HOSTS)

        for k in keys:
            mogc.store_content(k, k)

        try:
            files = mogc.list_keys()
            assert len(files) == 3

            files = mogc.list_keys(limit=1)
            assert len(files) == 1

            files = mogc.list_keys(prefix='sp')
            assert len(files) == 1
        finally:
            for k in keys:
                mogc.delete(k)
            self.moga.delete_domain(domain)
Ejemplo n.º 6
0
c.list_keys()

# create a file in mogilefs
f = c.new_file('foobar.txt')
f.write('hi, my name bar, foo bar.')
f.close()

# show paths
c.get_paths('foobar.txt')
c.get_paths('404.txt')

# get file data
c.get_file_data('404.txt')
c.get_file_data('foobar.txt')

# remove
c.delete('foobar.txt')



# django storage backend

from ogv_documents.storage.mogilefs import MogilefsStorage
from django.core.files.base import ContentFile

s = MogilefsStorage(domain='privatemedia', container='documents', base_url='/documents/', trackers=['127.0.0.1:7001'])
s.exists('six/2011/justone.pdf')
s.save(u'epic.txt', ContentFile('my epic content. now with a content file'))
s.save(u'ëpîc.txt', u'my epic content with ümlauts.')

s.save(s.get_available_name(s.get_valid_name(u'ëpîc.txt')), 'my epic content with umlauts.')
Ejemplo n.º 7
0
class Storage(BaseStorage):
    def __init__(self, context):
        BaseStorage.__init__(self, context)

        domain = self.context.config.MOGILEFS_STORAGE_DOMAIN
        trackers = self.context.config.MOGILEFS_STORAGE_TRACKERS
        self.storage = Client(domain=domain, trackers=trackers)

    def __key_for(self, url):
        return 'thumbor-crypto-%s' % url

    def __detector_key_for(self, url):
        return 'thumbor-detector-%s' % url

    def put(self, path, bytes):
        fp = self.storage.new_file(path)
        fp.write(bytes)
        fp.close()
        return path

    def put_crypto(self, path, data):
        if not self.context.config.STORES_CRYPTO_KEY_FOR_EACH_IMAGE:
            return

        if not self.context.server.security_key:
            raise RuntimeError("""STORES_CRYPTO_KEY_FOR_EACH_IMAGE can't be True
                               if no SECURITY_KEY specified""")

        key = self.__key_for(path)
        fp = self.storage.new_file(key)
        fp.write(self.context.server.security_key)
        fp.close()
        return key

    def put_detector_data(self, path, data):
        key = self.__detector_key_for(path)
        fp = self.storage.new_file(key)
        fp.write(dumps(data))
        fp.close()
        return key

    def get_crypto(self, path):
        if not self.context.config.STORES_CRYPTO_KEY_FOR_EACH_IMAGE:
            return None

        crypto = self.storage.get_file_data(self.__key_for(path))

        if not crypto:
            return None
        return crypto

    def get_detector_data(self, path):
        data = self.storage.get_file_data(self.__detector_key_for(path))

        if not data:
            return None
        return loads(data)

    def get(self, path):
        return self.storage.get_file_data(path) is not None

    def exists(self, path):
        return self.storage.keys(path) is not None

    def remove(self, path):
        if not self.exists(path):
            return
        return self.storage.delete(path)
Ejemplo n.º 8
0
class Storage(BaseStorage):
    def __init__(self, context):
        BaseStorage.__init__(self, context)

        domain = self.context.config.MOGILEFS_STORAGE_DOMAIN
        trackers = self.context.config.MOGILEFS_STORAGE_TRACKERS
        self.storage = Client(domain=domain, trackers=trackers)

    def __key_for(self, url):
        return 'thumbor-crypto-%s' % url

    def __detector_key_for(self, url):
        return 'thumbor-detector-%s' % url

    def put(self, path, bytes):
        fp = self.storage.new_file(path)
        fp.write(bytes)
        fp.close()
        return path

    def put_crypto(self, path, data):
        if not self.context.config.STORES_CRYPTO_KEY_FOR_EACH_IMAGE:
            return

        if not self.context.server.security_key:
            raise RuntimeError(
                """STORES_CRYPTO_KEY_FOR_EACH_IMAGE can't be True
                               if no SECURITY_KEY specified""")

        key = self.__key_for(path)
        fp = self.storage.new_file(key)
        fp.write(self.context.server.security_key)
        fp.close()
        return key

    def put_detector_data(self, path, data):
        key = self.__detector_key_for(path)
        fp = self.storage.new_file(key)
        fp.write(dumps(data))
        fp.close()
        return key

    def get_crypto(self, path):
        if not self.context.config.STORES_CRYPTO_KEY_FOR_EACH_IMAGE:
            return None

        crypto = self.storage.get_file_data(self.__key_for(path))

        if not crypto:
            return None
        return crypto

    def get_detector_data(self, path):
        data = self.storage.get_file_data(self.__detector_key_for(path))

        if not data:
            return None
        return loads(data)

    def get(self, path):
        return self.storage.get_file_data(path) is not None

    def exists(self, path):
        return self.storage.keys(path) is not None

    def remove(self, path):
        if not self.exists(path):
            return
        return self.storage.delete(path)