示例#1
0
    def stat(self):
        if self.content_provider.get(self.path) is None:
            return SFTP_NO_SUCH_FILE

        mtime = calendar.timegm(datetime.now().timetuple())

        sftp_attrs = SFTPAttributes()
        sftp_attrs.st_size = self.content_provider.get_size(self.path)
        sftp_attrs.st_uid = 0
        sftp_attrs.st_gid = 0
        sftp_attrs.st_mode = (stat.S_IRWXO | stat.S_IRWXG | stat.S_IRWXU |
                              (stat.S_IFDIR if self.content_provider.is_dir(
                                  self.path) else stat.S_IFREG))
        sftp_attrs.st_atime = mtime
        sftp_attrs.st_mtime = mtime
        sftp_attrs.filename = os.path.basename(self.path)
        return sftp_attrs
示例#2
0
 def chattr(self, path: Text, attr: SFTPAttributes) -> int:
     self.session.sftp_client_ready.wait()
     if self.session.sftp_client is None:
         raise MissingClient("self.session.sftp_client is None!")
     if attr.st_mode:
         return self.session.sftp_client.chmod(path, attr.st_mode)
     remotestat = self.stat(path)
     if isinstance(remotestat, int):
         return remotestat
     oldattr = paramiko.SFTPAttributes.from_stat(
         cast(os.stat_result, remotestat))
     if not attr.st_uid:
         attr.st_uid = oldattr.st_uid
     if not attr.st_gid:
         attr.st_gid = oldattr.st_gid
     if attr.st_uid is None or attr.st_gid is None:
         return paramiko.sftp.SFTP_FAILURE
     return self.session.sftp_client.chown(path, attr.st_uid, attr.st_gid)
示例#3
0
    def stat(self):
        if self.content_provider.get(self.path) is None:
            return SFTP_NO_SUCH_FILE

        mtime = calendar.timegm(datetime.now().timetuple())

        sftp_attrs = SFTPAttributes()
        sftp_attrs.st_size = self.content_provider.get_size(self.path)
        sftp_attrs.st_uid = 0
        sftp_attrs.st_gid = 0
        sftp_attrs.st_mode = (
            stat.S_IRWXO |
            stat.S_IRWXG |
            stat.S_IRWXU |
            (
                stat.S_IFDIR
                if self.content_provider.is_dir(self.path)
                else stat.S_IFREG
            )
        )
        sftp_attrs.st_atime = mtime
        sftp_attrs.st_mtime = mtime
        sftp_attrs.filename = os.path.basename(self.path)
        return sftp_attrs