ChannelSftp.chmod方法赋权文件夹

时间:2021-07-13 08:45:22

最近对接分账工作需要上传分账文件到指定sftp服务器,在给sftp上文件夹赋权是遇到一个问题;

具体是ChannelSftp的chmod(int permissions, String path)方法,该方法第一个参数作用是设定文件夹访问权限,需要将 10进制 的权限数值转为 8进制 写入。

代码: 

 1      public class SftpChmodDemo{
 2          
 3          public static void main(String[] args) throws ClassNotFoundException {
 4              String userName = "username";
 5              String password = "password";
 6              String ip = "localhost";
 7              int port = 22;
 8              String path = "/user";
 9      
10              Session session = null;
11              Channel channel = null;
12              try {
13                  session = new JSch().getSession(userName, ip, port);
14                  if (session == null) {
15                      throw new Exception("session is null");
16                  }
17                  session.setPassword(password);
18                  session.setConfig("StrictHostKeyChecking", "no");
19                  session.connect(3000000);
20                  channel = session.openChannel("sftp");
21                  channel.connect(3000000);
22                  ChannelSftp sftp = (ChannelSftp) channel;
23                  // 设定777权限,转为8进制放入chmod中
24                  sftp.chmod(Integer.parseInt("777", 8), path);
25                  // sftp.chmod(Integer.parseInt("755", 8), path);
26                  // sftp.chmod(Integer.parseInt("775", 8), path);
27      
28              } catch (Exception e) {
29                  // TODO: handle exception
30              } finally {
31                  if (null != session) {
32                      session.disconnect();
33                  }
34                  if (null != channel) {
35                      channel.disconnect();
36                  }
37              }
38          }
39      }

 

然后查看文件夹属性,赋权成功了!

 

ChannelSftp.chmod方法赋权文件夹

 

 贴一张文件访问权限图,根据需要赋权:

ChannelSftp.chmod方法赋权文件夹

 

 最后,感谢大家访问,不正确的地方欢迎留言!