Ejemplo n.º 1
0
 def topic(self):
     config = Config(
         FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/")
     storage = FileStorage(
         Context(config=config, server=get_server('ACME-SEC')))
     storage.put(IMAGE_URL % 1, IMAGE_BYTES)
     return storage.get(IMAGE_URL % 1)
Ejemplo n.º 2
0
            def topic(self):
                config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/", STORES_CRYPTO_KEY_FOR_EACH_IMAGE=True)
                storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))

                storage.put(IMAGE_URL % 6, IMAGE_BYTES)
                storage.put_crypto(IMAGE_URL % 6)
                return storage.get_crypto(IMAGE_URL % 6)
Ejemplo n.º 3
0
            def topic(self):
                config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/", STORES_CRYPTO_KEY_FOR_EACH_IMAGE=True)
                storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))

                storage.put(IMAGE_URL % 6, IMAGE_BYTES)
                storage.put_crypto(IMAGE_URL % 6)
                return storage.get_crypto(IMAGE_URL % 6)
Ejemplo n.º 4
0
    def get_app(self):
        cfg = Config(SECURITY_KEY='MYKEY')
        cfg.LOADER = "thumbor.loaders.file_loader"
        cfg.FILE_LOADER_ROOT_PATH = storage_path
        cfg.ALLOW_UNSAFE_URL = False
        cfg.ALLOW_OLD_URLS = True
        cfg.STORES_CRYPTO_KEY_FOR_EACH_IMAGE = True

        importer = Importer(cfg)
        importer.import_modules()
        server = ServerParameters(8891, 'localhost', 'thumbor.conf', None,
                                  'info', None)
        server.security_key = 'MYKEY'
        ctx = Context(server, cfg, importer)
        application = ThumborServiceApp(ctx)

        storage = FileStorage(Context(config=cfg, server=server))

        # Store fixtures (image.jpg and image.txt) into the file storage
        storage.put('image.jpg', file(join(storage_path, 'image.jpg')).read())
        storage.put_crypto(
            'image.jpg'
        )  # Write a file on the file storage containing the security key

        return application
Ejemplo n.º 5
0
 def test_does_not_store_if_config_says_not_to(self):
     iurl = self.get_image_url('image_5.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_crypto(iurl)
     got = yield storage.get_crypto(iurl)
     expect(got).to_be_null()
Ejemplo n.º 6
0
 def test_can_store_image_should_be_in_catalog(self):
     url = self.get_image_url('image.jpg')
     image_bytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(url, image_bytes)
     got = yield storage.get(url)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 7
0
 def test_can_get_if_expire_set_to_none(self):
     iurl = self.get_image_url('image_2.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     got = yield storage.get(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 8
0
 def test_can_get_if_expire_set_to_none(self):
     iurl = self.get_image_url('image_2.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     got = yield storage.get(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 9
0
 def test_can_store_image_should_be_in_catalog(self):
     url = self.get_image_url('image.jpg')
     image_bytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(url, image_bytes)
     got = yield storage.get(url)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 10
0
 def test_does_not_store_if_config_says_not_to(self):
     iurl = self.get_image_url('image_5.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_crypto(iurl)
     got = yield storage.get_crypto(iurl)
     expect(got).to_be_null()
Ejemplo n.º 11
0
 def test_can_store_image_with_spaces_encoded(self):
     url = self.get_image_url('image%20.jpg')
     image_bytes = self.get_image_bytes('image .jpg')
     storage = FileStorage(self.context)
     storage.put(url, image_bytes)
     got = yield storage.get(url)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal(image_bytes)
Ejemplo n.º 12
0
 def test_can_store_image_with_spaces_encoded(self):
     url = self.get_image_url('image%20.jpg')
     image_bytes = self.get_image_bytes('image .jpg')
     storage = FileStorage(self.context)
     storage.put(url, image_bytes)
     got = yield storage.get(url)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal(image_bytes)
Ejemplo n.º 13
0
 def test_detector_can_store_detector_data(self):
     iurl = self.get_image_url('image_7.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_detector_data(iurl, 'some-data')
     got = yield storage.get_detector_data(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal('some-data')
Ejemplo n.º 14
0
 def test_detector_can_store_detector_data(self):
     iurl = self.get_image_url('image_7.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_detector_data(iurl, 'some-data')
     got = yield storage.get_detector_data(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal('some-data')
Ejemplo n.º 15
0
 def test_can_store_crypto(self):
     iurl = self.get_image_url('image_6.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_crypto(iurl)
     got = yield storage.get_crypto(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal('ACME-SEC')
Ejemplo n.º 16
0
 def test_can_store_crypto(self):
     iurl = self.get_image_url('image_6.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     storage.put_crypto(iurl)
     got = yield storage.get_crypto(iurl)
     expect(got).not_to_be_null()
     expect(got).not_to_be_an_error()
     expect(got).to_equal('ACME-SEC')
Ejemplo n.º 17
0
    def test_should_be_an_error(self):
        iurl = self.get_image_url('image_3.jpg')
        ibytes = self.get_image_bytes('image.jpg')
        storage = FileStorage(self.context)
        storage.put(iurl, ibytes)

        with expect.error_to_happen(
            RuntimeError,
            message="STORES_CRYPTO_KEY_FOR_EACH_IMAGE can't be True if no SECURITY_KEY specified"
        ):
            storage.put_crypto(iurl)
Ejemplo n.º 18
0
    def test_should_be_an_error(self):
        iurl = self.get_image_url('image_3.jpg')
        ibytes = self.get_image_bytes('image.jpg')
        storage = FileStorage(self.context)
        storage.put(iurl, ibytes)

        msg = "STORES_CRYPTO_KEY_FOR_EACH_IMAGE can't be True if no SECURITY_KEY specified"
        with expect.error_to_happen(
                RuntimeError,
                message=msg,
        ):
            storage.put_crypto(iurl)
Ejemplo n.º 19
0
 def test_cannot_get_expired_1_day_old_image(self):
     iurl = self.get_image_url('image_2.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     current_timestamp = (datetime.utcnow() -
                          datetime(1970, 1, 1)).total_seconds()
     new_mtime = current_timestamp - 60 * 60 * 24
     with mock.patch('thumbor.storages.file_storage.getmtime',
                     return_value=new_mtime):
         got = yield storage.get(iurl)
     expect(got).to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 20
0
 def test_cannot_get_expired_1_day_old_image(self):
     iurl = self.get_image_url('image_2.jpg')
     ibytes = self.get_image_bytes('image.jpg')
     storage = FileStorage(self.context)
     storage.put(iurl, ibytes)
     current_timestamp = (
         datetime.utcnow() - datetime(1970, 1, 1)).total_seconds()
     new_mtime = current_timestamp - 60 * 60 * 24
     with mock.patch(
             'thumbor.storages.file_storage.getmtime',
             return_value=new_mtime):
         got = yield storage.get(iurl)
     expect(got).to_be_null()
     expect(got).not_to_be_an_error()
Ejemplo n.º 21
0
    def test_can_store_images_in_same_folder(self):
        iurl = self.get_image_url('image_999.jpg')
        other_iurl = iurl.replace('/some/', '/some_other/')
        root_path = join(self.config.FILE_STORAGE_ROOT_PATH, dirname(other_iurl))
        if exists(root_path):
            shutil.rmtree(root_path)

        storage = FileStorage(self.context)
        ibytes = self.get_image_bytes('image.jpg')
        storage.put(other_iurl.replace('999', '998'), ibytes)
        storage.put(other_iurl, ibytes)

        got = yield storage.get(other_iurl)
        expect(got).not_to_be_null()
        expect(got).not_to_be_an_error()
Ejemplo n.º 22
0
    def test_can_store_images_in_same_folder(self):
        iurl = self.get_image_url('image_999.jpg')
        other_iurl = iurl.replace('/some/', '/some_other/')
        root_path = join(self.config.FILE_STORAGE_ROOT_PATH,
                         dirname(other_iurl))
        if exists(root_path):
            shutil.rmtree(root_path)

        storage = FileStorage(self.context)
        ibytes = self.get_image_bytes('image.jpg')
        storage.put(other_iurl.replace('999', '998'), ibytes)
        storage.put(other_iurl, ibytes)

        got = yield storage.get(other_iurl)
        expect(got).not_to_be_null()
        expect(got).not_to_be_an_error()
Ejemplo n.º 23
0
    def get_app(self):
        cfg = Config(SECURITY_KEY='MYKEY')
        cfg.LOADER = "thumbor.loaders.file_loader"
        cfg.FILE_LOADER_ROOT_PATH = storage_path
        cfg.ALLOW_UNSAFE_URL = False
        cfg.ALLOW_OLD_URLS = True
        cfg.STORES_CRYPTO_KEY_FOR_EACH_IMAGE = True

        importer = Importer(cfg)
        importer.import_modules()
        server = ServerParameters(8891, 'localhost', 'thumbor.conf', None, 'info', None)
        server.security_key = 'MYKEY'
        ctx = Context(server, cfg, importer)
        application = ThumborServiceApp(ctx)

        storage = FileStorage(Context(config=cfg, server=server))

        # Store fixtures (image.jpg and image.txt) into the file storage
        storage.put('image.jpg', open(join(storage_path, 'image.jpg')).read())
        storage.put_crypto('image.jpg')   # Write a file on the file storage containing the security key

        return application
Ejemplo n.º 24
0
 def topic(self):
     config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/")
     storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))
     storage.put(IMAGE_URL % 5, IMAGE_BYTES)
     storage.put_crypto(IMAGE_URL % 5)
     return storage.get_crypto(IMAGE_URL % 5)
Ejemplo n.º 25
0
 def topic(self):
     config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/")
     storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))
     storage.put(IMAGE_URL % 7, IMAGE_BYTES)
     storage.put_detector_data(IMAGE_URL % 7, 'some-data')
     return storage.get_detector_data(IMAGE_URL % 7)
Ejemplo n.º 26
0
        def topic(self):
            config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/", STORAGE_EXPIRATION_SECONDS=None)
            storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))

            storage.put(IMAGE_URL % 2, IMAGE_BYTES)
            return storage.get(IMAGE_URL % 2)