【发布时间】:2016-07-03 23:16:44
【问题描述】:
我想编写一个响应 S3 put 事件的处理程序,以转换任何上传到 mp4 的 avi 文件。我在 Java、Eclipse 中使用 AWS 工具包插件进行操作。对于视频转换,我使用带有ffmpeg-cli-wrapper 的ffmpeg,并且我在源代码树中提供了ffmpeg 的静态(linux)二进制文件。
我发现当我上传函数时,二进制文件被放入/var/task,但是当我尝试使用我编写的测试函数时,我得到一个“权限被拒绝”的错误。
import net.bramp.ffmpeg.FFmpeg;
public class LambdaFunctionHandler implements RequestHandler<S3Event, String> {
private static final String FFMPEG = "/var/task/ffmpeg";
public String handleRequest(S3Event event, Context context) {
try {
FFmpeg ff = new FFmpeg(FFMPEG);
System.out.println(ff.version());
} catch (Exception e) {
e.printStackTrace();
}
return "foo";
}
}
堆栈跟踪的第一行:java.io.IOException: Cannot run program "/var/task/ffmpeg": error=13, Permission denied。
如何执行这个二进制文件?我已经按照其他人的建议和chmod 755 在上传之前完成了二进制文件,但没有任何区别。
【问题讨论】:
标签: linux amazon-web-services amazon-ec2 aws-lambda