如何将驻留在 Amazon ec-2 实例中的 Tomcat 7 server.xml 文档库指向 Amazon S3 存储桶中的文件夹

How to point Tomcat 7 server.xml docbase residing in Amazon ec-2 instance to a folder in Amazon S3 bucket

在我的本地,我可以像这样成功地指向我的 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 权限才能访问这些文件夹,但是我有这些问题 -

  1. 如何提供此访问权限?
  2. 当用户上传视频时,我的应用程序是否具有对这些文件夹的写入权限?如果没有,如何提供?

从 AWS 上可用的任何参考文章中,none 讨论了这个问题。 Whosebug 问题搜索大多是过时的信息,或者人们建议使用另一个静态域。我应该在本周末以 BETA 模式发布该产品,但由于这个问题我被卡住了。任何指点、建议都会救我一命!

如果我了解你的设置,你的应用托管在 Tomcat,你希望你的用户将内容上传到 S3,这样你就可以通过 S3 http 端点引用你的资产。

如果是这样,您的应用服务器配置不正确。您的服务器本身不会提供任何视频;该作业被卸载到 S3。与其定义一个 docBase,不如提供一个 URL 重写规则,以便 http://www.example.com/videos/ point s to the new S3 http endpoint EG http://assets-example-com.s3-website-us-east-1.amazonaws.com/videos/.

When a user uploads a video will my application have the write access to these folders ? If no, how to provide that.

如果您还没有,您需要开发一个上传界面,并为上述存储桶提供适当的权限。有关详细信息,请参阅 Java Upload File