我想编写一个处理程序,以响应S3上传事件,并将上传的任何avi文件转换为mp4格式。我正在使用AWS工具包插件在Eclipse中使用Java进行操作。对于视频转换,我使用ffmpeg-cli-wrapper的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
了这个二进制文件,但是没有任何改变。
mv
失败了,请尝试使用cp
。这对我总是有效的。 - helloVProcessBuilder
,一切都很好地运行了。感谢你的帮助! - moarCoffee