2012-01-28 3 views
1

레일즈 3.0.11 및 MiniMagick이 포함 된 사진 갤러리를 작성 중입니다.MIniMagick :: Image.write()는 다양한 권한으로 파일을 저장합니다.

def JadeImage.rescale path,new_path,max_height=150 
    image = MiniMagick::Image.open(path) 
    image.adaptive_resize(self.resize(image[:height],max_height))if image[:height] > max_height 
    image.write(new_path) 
    end 

동일한 사진에서 크기가 조정 된 두 개의 이미지를 저장하는 데 사용하고 있습니다. 파일 중 하나는 644 권한으로 저장되며 모두 세계에 있습니다. 다른 하나는 항상 600으로 저장되며 웹 페이지에는 표시 할 수 없습니다.

지금은 저장 한 후 약간의 유틸리티를 실행하여 해당 디렉토리에있는 모든 것을 644로 설정합니다. 이제는 작동합니다.

이 문제가 발생하는 이유가 있을까요?

답변

1

이렇게하면 결국이 문제가 해결됩니다. 아파치를 사용하고 있다면 apache2.conf에 추가해보십시오.

PassengerUserSwitching Off 
PassengerDefaultUser www-data 
PassengerDefaultGroup www-data 
+0

이것은 아마도 아파치/여객기가 다른 설정으로는 작동하지 않습니다. 필자는'image.write (fpath)'호출 다음에'File.chmod (0644, fpath)'를 추가하여이 문제를 해결했습니다. – user206481