def make_layered_fs(write_fs_string, *read_fs_strings): multifs_kwargs = [] write_fs = make_fs_from_string(write_fs_string) multifs_kwargs.append({ 'name': 'layer1', 'fs': write_fs, 'write': True, }) for layer_number, read_fs_string in enumerate(read_fs_strings, 2): read_fs = make_fs_from_string(read_fs_string) multifs_kwargs.append({ 'name': 'layer%d' % layer_number, 'fs': read_fs, 'write': False, }) # Create the multi-layered filesystem object. Add the layers in # reverse order because that is how the multifs class requires it. # See http://pythonhosted.org/fs/multifs.html # Also, disable thread locking because we don't intend on updating # the child FS objects after this initalization step. multi_fs = multifs.MultiFS(thread_synchronize=False) for kwargs in reversed(multifs_kwargs): multi_fs.addfs(**kwargs) return multi_fs
def make_storage(self): """ Create a storage object that will exercise multiple FS types and wrapping layers. """ fs = layeredfs.make_layered_fs('/tmp', 's3:apn-localdev-test1/test', 'http://media2.apnonline.com.au/img/') fs = cachefs.enable_caching(fs, cachefs=make_fs_from_string('tempfs')) return FSStorage(fs, base_url=settings.MEDIA_STORAGE_URL)
def make_storage(self): """ Create a storage object that will exercise multiple FS types and wrapping layers. """ fs = layeredfs.make_layered_fs( '/tmp', 's3:apn-localdev-test1/test', 'http://media2.apnonline.com.au/img/' ) fs = cachefs.enable_caching(fs, cachefs=make_fs_from_string('tempfs')) return FSStorage(fs, base_url=settings.MEDIA_STORAGE_URL)