处理上传到服务器文件,但是无法通过url访问。修改文件权限后可以访问。请问怎么解决?

最近项目需要做文件的共享存储,目前是三个节点(例如99,97,98),遇到的问题就是,在97上传的文件,98和99下载不了

原因是因为权限问题,就是修改文件权限后,其它节点就可以访问了,想到这一步

   我有两种思路,第一种,为什么98和99上传的文件,他们俩直接就可以相互直接下载,而唯独97节点不能下载,能不能将97弄成和98和99一样,第二种,用java代码的方式将文件的权限修改下,这样也能达到效果,

   有了两种思路,先想着用第一种,为什么会出现97和别的不一样,原因每个节点上传的文件,它产生对应的uid和gid,这两个id分别是用户的id和组id,99和98生成的是一样uid,而97生成了不一样的uid,为什么会出现这种情况?由于时间紧我就选择了第二种的方式,

   第二种的方式,通过java代码的方式将上传的附件权限加以修改,如下面的代码

          Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();    perms.add(PosixFilePermission.OWNER_READ); //设置所有者的读取权限  

perms.add(PosixFilePermission.OWNER_WRITE); //设置所有者的写权限  

perms.add(PosixFilePermission.OWNER_EXECUTE); //设置所有者的执行权限   perms.add(PosixFilePermission.GROUP_READ); //设置组的读取权限  

perms.add(PosixFilePermission.GROUP_EXECUTE); //设置组的执行权限  

perms.add(PosixFilePermission.OTHERS_READ); //设置其他的读取权限   perms.add(PosixFilePermission.OTHERS_EXECUTE); //设置其他的执行权限

//修改文件权限主要方法

Files.setPosixFilePermissions(pathDest, perms);  //修改文件的权限

重新部署代码,问题解决。第一种方式,有时间再研究研究,希望可以帮助到你

猜你喜欢

转载自blog.csdn.net/y15201653575/article/details/86542775