在我的本地,我成功地指出了我的docBase - <Context docBase="D:/XYZ" path="/video" />
。
由于我的基于Java的应用程序将在AWS上托管,我使用Amazon ec2部署我的应用程序和Amazon S3来托管用户的视频,缩略图和个人资料照片。所以我将ec2上的tomcat 7 server.xml条目更改为<Context docBase="http://MyS3EndPointURL" path="/videos" />
然而,当我试图重新启动我的tomcat时,它错误地说 -
java.lang.IllegalArgumentException: Document base /usr/share/tomcat7/webapps/MyS3EndPointURL/Videos does not exist or is not a readable directory
我尝试删除http://
,但正如我预期的那样,它也无效。
我知道我必须允许Tomcat访问这些文件夹,但我有这些问题 -
从AWS上提供的任何参考文章中,没有人讨论此问题。 Stackoverflow问题搜索主要是过时的信息,或者人们建议使用另一个静态域。我应该在本周末以BETA模式发布该产品,但由于这个问题我被困住了。任何指针,建议都会救我!
答案 0 :(得分:0)
如果我了解您的设置,您的应用程序托管在Tomcat上,您希望用户将内容上传到S3,以便您可以通过S3 http端点引用您的资产。
如果是这样,您的应用服务器配置不正确。您的服务器本身不会提供任何视频;该作业已卸载到S3。您需要提供URL重写规则,以便http://www.example.com/videos/指向新的S3 http端点EG http://assets-example-com.s3-website-us-east-1.amazonaws.com/videos/。
,而不是像您一样定义docBase。当用户上传视频时,我的应用程序是否具有对这些文件夹的写入权限?如果不是,如何提供。
如果您还没有,则需要使用上述存储桶的相应权限开发上传界面。有关详细信息,请参阅Java Upload File