Tvd*_*de1 11 imagemagick heroku tmp node.js
我在heroku上创建了一个使用imagemagick的nodejs应用程序.我正在做这个操作:
require('child_process').exec(`convert -quiet -delay 1 output.avi ${gif}`);
Run Code Online (Sandbox Code Playgroud)
这应该output.avi(存在)转换为gif文件.在这种情况下,gif是"/app/temp/gifs/xstrycatdq.gif".此命令在我的本地Windows机器上完美运行.因为我使用path模块来获取变量path.join和__dirname.
我已经安装了heroku buildpack:
我收到的错误是:
Command failed: convert -quiet -delay 1 output.avi /app/temp/gifs/xstrycatdq.gif
convert: DelegateFailed `'ffmpeg' -nostdin -v -1 -vframes %S -i '%i' -vcodec pam -an -f rawvideo -y '%u.pam' 2> '%Z'' @ error/delegate.c/InvokeDelegate/1919.
convert: UnableToOpenBlob `magick-93R4VJcemPz0z1.pam': No such file or directory @ error/blob.c/OpenBlob/2705.
convert: NoImagesDefined `/app/temp/gifs/xstrycatdq.gif' @ error/convert.c/ConvertImageCommand/3257.
Run Code Online (Sandbox Code Playgroud)
似乎无法写入/ tmp /目录或任何内容.我也尝试过mkdir /tmp/但bash告诉我这个目录已经存在.
我也试过用环境变量改变imagemagick的临时目录export MAGICK_TMPDIR="temp".
有帮助吗?
编辑:变量现在是绝对的.
确定不是权限问题?你能写一个简单的文本文件吗/app/temp?根本没有读取或写入任何内容,这听起来像是权限问题。也许它不一定是ImageMagick的保护设计,而是heroku或您的编程环境?
您尝试使用的此目录的特殊之处在于它包含损坏或不完整的文件 - 当某些软件运行时,它可能具有特殊的保护或防护措施。temp目录通常被设计(或假设)为免受用户干扰,因为它们只能由程序本身使用和处理,而不是由程序的用户命令使用和处理。
这个问题和你的问题很相似,也许对你有帮助。
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |