Пример #1
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
Пример #2
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)
Пример #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')))
     return storage.get_crypto(IMAGE_URL % 9999)
Пример #4
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()
Пример #5
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()
Пример #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()
Пример #7
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('')))
     storage.put(IMAGE_URL % 3, IMAGE_BYTES)
     storage.put_crypto(IMAGE_URL % 3)
Пример #8
0
 def topic(self):
     config = Config(
         FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/%s" %
         random.randint(1, 10000000))
     storage = FileStorage(
         Context(config=config, server=get_server('ACME-SEC')))
     storage.ensure_dir(config.FILE_STORAGE_ROOT_PATH)
     return exists(config.FILE_STORAGE_ROOT_PATH)
Пример #9
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()
Пример #10
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)
Пример #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)
Пример #12
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)
Пример #13
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)
Пример #14
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()
Пример #15
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()
Пример #16
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)
Пример #17
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
Пример #18
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()
Пример #19
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()
Пример #20
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)

        logger.exception = Mock()

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

        # Store fixtures (image.jpg and image.txt) into the file storage
        storage.put_crypto("image.jpg")  # Write a file on the file storage containing the security key

        return application
Пример #21
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')
Пример #22
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')
Пример #23
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')
Пример #24
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')
Пример #25
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()
Пример #26
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()
Пример #27
0
        os.unlink(cachefile)
        print "\tRemoved"
    else:
        print "\tNot in cache"


if (len(sys.argv) != 2):
    print 'Usage: ' + sys.argv[0] + ' url/file'
    exit(1)

server_parameters = get_server_parameters()
lookup_paths = ['/etc/']
config = Config.load(server_parameters.config_path,
                     conf_name='thumbor.conf',
                     lookup_paths=lookup_paths)
importer = None

context = Context(server=server_parameters, config=config, importer=importer)

storage = Storage(context)

if os.path.exists(sys.argv[1]):
    with open(sys.argv[1]) as f:
        for url in f:
            flush(url.rstrip())

else:
    flush(sys.argv[1])

print 'All cache files removed'
Пример #28
0
 def test_detector_returns_none_if_no_detector_data(self):
     iurl = self.get_image_url('image_10000.jpg')
     storage = FileStorage(self.context)
     got = yield storage.get_detector_data(iurl)
     expect(got).to_be_null()
Пример #29
0
 def topic(self):
     config = Config(
         FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/")
     storage = FileStorage(
         Context(config=config, server=get_server('ACME-SEC')))
     return storage.get_detector_data(IMAGE_URL % 10000)
Пример #30
0
 def test_creates_root_path_if_none_found(self):
     storage = FileStorage(self.context)
     storage.ensure_dir(self.config.FILE_STORAGE_ROOT_PATH)
     expect(exists(self.config.FILE_STORAGE_ROOT_PATH)).to_be_true()
Пример #31
0
 def test_getting_crypto_for_a_new_image_returns_none(self):
     iurl = self.get_image_url('image_9999.jpg')
     storage = FileStorage(self.context)
     got = yield storage.get_crypto(iurl)
     expect(got).to_be_null()
Пример #32
0
 def test_getting_crypto_for_a_new_image_returns_none(self):
     iurl = self.get_image_url('image_9999.jpg')
     storage = FileStorage(self.context)
     got = yield storage.get_crypto(iurl)
     expect(got).to_be_null()
Пример #33
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)
Пример #34
0
 def topic(self):
     config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/")
     storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))
     return storage.get_detector_data(IMAGE_URL % 10000)
Пример #35
0
 def topic(self):
     config = Config(FILE_STORAGE_ROOT_PATH="/tmp/thumbor/file_storage/%s" % random.randint(1, 10000000))
     storage = FileStorage(Context(config=config, server=get_server('ACME-SEC')))
     storage.ensure_dir(config.FILE_STORAGE_ROOT_PATH)
     return exists(config.FILE_STORAGE_ROOT_PATH)
Пример #36
0
 def test_detector_returns_none_if_no_detector_data(self):
     iurl = self.get_image_url('image_10000.jpg')
     storage = FileStorage(self.context)
     got = yield storage.get_detector_data(iurl)
     expect(got).to_be_null()
Пример #37
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)
Пример #38
0
 async def test_creates_root_path_if_none_found(self):
     storage = FileStorage(self.context)
     storage.ensure_dir(self.config.FILE_STORAGE_ROOT_PATH)
     expect(exists(self.config.FILE_STORAGE_ROOT_PATH)).to_be_true()