Beispiel #1
0
 def fs_connect(self, config):
     try:
         if "logger_name" in config:
             self.logger = logging.getLogger(config["logger_name"])
         self.path = config["path"]
         if not self.path.endswith("/"):
             self.path += "/"
         if not os.path.exists(self.path):
             raise FsException(
                 "Invalid configuration param at '[storage]': path '{}' does not exist"
                 .format(config["path"]))
     except FsException:
         raise
     except Exception as e:  # TODO refine
         raise FsException(str(e))
Beispiel #2
0
 def dir_ls(self, storage):
     """
     return folder content
     :param storage: can be a str or list of str
     :return: folder content
     """
     try:
         if isinstance(storage, str):
             f = storage
         else:
             f = "/".join(storage)
         return os.listdir(self.path + f)
     except NotADirectoryError:
         raise FsException("File {} does not exist".format(f),
                           http_code=HTTPStatus.NOT_FOUND)
     except IOError:
         raise FsException("File {} cannot be opened".format(f),
                           http_code=HTTPStatus.BAD_REQUEST)
Beispiel #3
0
 def file_open(self, storage, mode):
     """
     Open a file
     :param storage: can be a str or list of str
     :param mode: file mode
     :return: file object
     """
     try:
         if isinstance(storage, str):
             f = storage
         else:
             f = "/".join(storage)
         return open(self.path + f, mode)
     except FileNotFoundError:
         raise FsException("File {} does not exist".format(f),
                           http_code=HTTPStatus.NOT_FOUND)
     except IOError:
         raise FsException("File {} cannot be opened".format(f),
                           http_code=HTTPStatus.BAD_REQUEST)
Beispiel #4
0
 def mkdir(self, folder):
     """
     Creates a folder or parent object location
     :param folder:
     :return: None or raises and exception
     """
     try:
         os.mkdir(self.path + folder)
     except Exception as e:
         raise FsException(str(e),
                           http_code=HTTPStatus.INTERNAL_SERVER_ERROR)
Beispiel #5
0
    def file_delete(self, storage, ignore_non_exist=False):
        """
        Delete storage content recursivelly
        :param storage: can be a str or list of str
        :param ignore_non_exist: not raise exception if storage does not exist
        :return: None
        """

        if isinstance(storage, str):
            f = self.path + storage
        else:
            f = self.path + "/".join(storage)
        if os.path.exists(f):
            rmtree(f)
        elif not ignore_non_exist:
            raise FsException("File {} does not exist".format(storage),
                              http_code=HTTPStatus.BAD_REQUEST)