저는 Elastic Beanstalk을 사용하여 배치 된 레일 어플리케이션이 있습니다. 나는 ffmpeg를 사용하여 S3에 저장된 오디오 파일에 대한 정보를 얻고 싶습니다. streamio-ffmpeg 젬을 사용하면 좀 더 쉽게 만들 수 있습니다.레일 엘라스틱 콩 줄기 - 그런 파일이나 디렉토리가 없습니다.
인스턴스에 SSH 처리 할 때 잘 작동하는 EC2 인스턴스에 ffmpeg를 설치했으며 모든 것이 로컬로 정확하게 작동하도록했습니다. 기본적으로 S3에서 파일을 다운로드하고/tmp 폴더에 저장 한 다음 streamio-ffmpeg gem을 통해 해당 파일을 호출합니다. 나는이 오류를 얻을
Errno::ENOENT (No such file or directory - ffmpeg -i /var/app/current/tmp/46951a3d16abb2e5fcf1da9e4cf8e0f3.flac)
내가 여기 바보 같은 일을하고 있습니까 때
s3 = AWS::S3.new(
:access_key_id => ENV["AWS_ACCESS_KEY_ID"],
:secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"])
object = s3.buckets[ENV["AWS_S3_BUCKET"]].objects[CGI::unescape(self.url)]
tempname = Digest::MD5.hexdigest(DateTime.now.to_s) + "." + self.file_format
File.open(Rails.root.to_s + '/tmp/' + tempname, 'wb') do |f|
f.write(object.read)
end
dl = Rails.root.to_s + '/tmp/' + tempname
audio = FFMPEG::Movie.new(dl)
오류는, 그 마지막 줄에 발생? 인스턴스로 SSH 할 때, 파일은 있어야하고, 명령 행에서 그 행을 실행할 때, 절대적으로 잘 실행됩니다.
UPDATE 나는 리눅스에 대한 전문가는 아니지만, tmp 디렉토리에 ls -l 명령을 실행하는
-rw-r--r-- 1 webapp webapp 26445358 Apr 9 13:07 90da56d83822a0bf716b5dfaae27844b.wav
이러한 사용 권한이 제한적인 나에게 준다?
이 어떤 도움을 크게 감상 할 수
잘 모르지만 왜 문제가 발생하는지는 확실합니다. 허가를 확인할 수 있습니까? –
게시물에 파일 사용 권한을 추가했습니다. – user1756535
좋아요, 그래서 저는 이것을 ffmpeg를 사용할 수없는 인스턴스의 webapp 사용자에게 줄였습니다. 어떻게 해결할 수 있는지에 대한 아이디어가 있습니까? – user1756535