J'ai une application rails, déployée en utilisant Elastic Beanstalk. Je veux utiliser ffmpeg pour obtenir des informations sur les fichiers audio, qui sont stockés sur S3, et j'utilise la gemme streamio-ffmpeg pour rendre cela un peu plus facile.Rails Elastic Beanstalk - No tel fichier ou répertoire
J'ai installé ffmpeg sur l'instance EC2, ce qui fonctionne très bien quand SSH-ing dans l'instance, et tout fonctionne très bien localement. Je télécharge le fichier à partir de S3 et le stocke dans le dossier/tmp, puis je l'appelle via la gemme streamio-ffmpeg.
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)
L'erreur se produit sur cette dernière ligne, quand je reçois cette erreur
Errno::ENOENT (No such file or directory - ffmpeg -i /var/app/current/tmp/46951a3d16abb2e5fcf1da9e4cf8e0f3.flac)
Est-ce que je fais ici quelque chose de stupide? Lorsque je SSH dans l'instance, le fichier est où il devrait être, et quand je cours cette ligne dans la ligne de commande, il fonctionne parfaitement.
MISE À JOUR Je ne suis pas expert sur Linux, mais l'exécution ls -l dans le répertoire tmp me donne
-rw-r--r-- 1 webapp webapp 26445358 Apr 9 13:07 90da56d83822a0bf716b5dfaae27844b.wav
-ce que ces autorisations restrictives?
Toute aide serait grandement appréciée
Je ne sais pas pourquoi le problème se produit, il semble OK. Pouvez-vous vérifier la permission? –
J'ai ajouté les autorisations de fichier à la publication – user1756535
Ok, donc je pense que j'ai réduit cela à l'utilisateur webapp sur l'instance ne pouvant pas utiliser ffmpeg. Des idées sur comment je peux résoudre ça? – user1756535