【问题标题】:How to point Tomcat 7 server.xml docbase residing in Amazon ec-2 instance to a folder in Amazon S3 bucket如何将驻留在 Amazon ec2 实例中的 Tomcat 7 server.xml 文档库指向 Amazon S3 存储桶中的文件夹
【发布时间】:2016-01-22 21:57:45
【问题描述】:

在我的本地,我成功地能够像这样指向我的 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 上提供的任何参考文章中,都没有谈到这个问题。 Stackoverflow 问题搜索大多是过时的信息,或者人们建议拥有另一个静态域。我应该在本周末以 BETA 模式发布该产品,但由于这个问题我被卡住了。任何指针,建议都会救我!

【问题讨论】:

    标签: java amazon-web-services amazon-s3 amazon-ec2 tomcat7


    【解决方案1】:

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

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

    当用户上传视频时,我的应用程序是否拥有对这些文件夹的写入权限?如果没有,如何提供。

    如果您还没有,您需要为上述存储桶开发一个具有相应权限的上传接口。更多信息请见Java Upload File

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2020-07-25
    • 2014-07-28
    相关资源
    最近更新 更多