コード例 #1
0
ファイル: _s3fs.py プロジェクト: miarec/s3fs
def s3errors(path):
    """Translate S3 errors to FSErrors."""
    try:
        yield
    except ClientError as error:
        _error = error.response.get('Error', {})
        error_code = _error.get('Code', None)
        response_meta = error.response.get('ResponseMetadata', {})
        http_status = response_meta.get('HTTPStatusCode', 200)
        error_msg = _error.get('Message', None)
        if error_code == 'NoSuchBucket':
            raise errors.ResourceError(path, exc=error, msg=error_msg)
        if http_status == 404:
            raise errors.ResourceNotFound(path)
        elif http_status == 403:
            raise errors.PermissionDenied(path=path, msg=error_msg)
        else:
            raise errors.OperationFailed(path=path, exc=error)
    except SSLError as error:
        raise errors.OperationFailed(path, exc=error)
    except EndpointConnectionError as error:
        raise errors.RemoteConnectionError(
            path,
            exc=error,
            msg="{}".format(error)
        )
コード例 #2
0
 def makedir(self, path, permissions=None, recreate=False):
     self.check()
     result = self.pcloud.createfolder(path=path)
     if result["result"] == 2004:
         if recreate:
             # If the directory already exists and recreate = True
             # we don't want to raise an error
             pass
         else:
             raise errors.DirectoryExists(path)
     elif result["result"] != 0:
         raise errors.OperationFailed(path=path,
                                      msg='Create of directory failed with {0}'.format(result["error"]))
     else:  # everything is OK
         return self.opendir(path)
コード例 #3
0
    def clean(self):
        """Clean (delete) temporary files created by this filesystem."""
        if self._cleaned:
            return

        try:
            logger.info(
                "Shutting down File System. Cleaning directories at {}".format(
                    self._temp_dir))
            shutil.rmtree(self._temp_dir)
        except Exception as error:
            if not self._ignore_clean_errors:
                raise errors.OperationFailed(
                    msg="failed to remove temporary directory", exc=error)
        self._cleaned = True
コード例 #4
0
ファイル: dvcfs.py プロジェクト: covid-genomics/dvc-fs
    def clean(self) -> None:
        """Clean (delete) temporary files created by this filesystem."""
        if self._cleaned:
            return

        self._client.cleanup()

        try:
            shutil.rmtree(self._temp_dir)
        except Exception as error:
            if not self._ignore_clean_errors:
                raise errors.OperationFailed(
                    msg="failed to remove temporary directory; {}".format(
                        error),
                    exc=error,
                )
        self._cleaned = True