處理上傳到服務器文件,但是無法通過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);  //修改文件的權限

重新部署代碼,問題解決。第一種方式,有時間再研究研究,希望可以幫助到你

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章