docs: def configure(self, app):
          '''
          Load configuration from application configuration.
  
          For each storage, the configuration is loaded with the following pattern::
  
              FS_{BACKEND_NAME}_{KEY} then
              {STORAGE_NAME}_FS_{KEY}
  
          If no configuration is set for a given key, global config is taken as default.
          '''
          config = Config()
  
          prefix = PREFIX.format(self.name.upper())
          backend_key = '{0}BACKEND'.format(prefix)
          self.backend_name = app.config.get(backend_key, app.config['FS_BACKEND'])
          self.backend_prefix = BACKEND_PREFIX.format(self.backend_name.upper())
          backend_excluded_keys = [''.join((self.backend_prefix, k)) for k in BACKEND_EXCLUDED_CONFIG]
  
          # Set default values
          for key, value in DEFAULT_CONFIG.items():
              config.setdefault(key, value)
  
          # Set backend level values
          for key, value in app.config.items():
              if key.startswith(self.backend_prefix) and key not in backend_excluded_keys:
                  config[key.replace(self.backend_prefix, '').lower()] = value
  
          # Set storage level values
          for key, value in app.config.items():
              if key.startswith(prefix):
                  config[key.replace(prefix, '').lower()] = value
  
          if self.backend_name not in BACKENDS:
              raise ValueError('Unknown backend "{0}"'.format(self.backend_name))
          backend_class = BACKENDS[self.backend_name].load()
          backend_class.backend_name = self.backend_name
          self.backend = backend_class(self.name, config)
          self.config = config