code: def set_storage(self, storage):
          
          if isinstance(storage, BaseStorage):
              self.storage = storage
          elif isinstance(storage, dict):
              if 'backend' not in storage and 'root_dir' in storage:
                  storage['backend'] = 'FileSystem'
              try:
                  backend_cls = getattr(storage_package, storage['backend'])
              except AttributeError:
                  try:
                      backend_cls = import_module(storage['backend'])
                  except ImportError:
                      self.logger.error('cannot find backend module %s',
                                        storage['backend'])
                      sys.exit()
              kwargs = storage.copy()
              del kwargs['backend']
              self.storage = backend_cls(**kwargs)
          else:
              raise TypeError('"storage" must be a storage object or dict')
docs: Set storage backend for downloader
  
          For full list of storage backend supported, please see :mod:`storage`.
  
          Args:
              storage (dict or BaseStorage): storage backend configuration or instance