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

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

在我的本地,我能够成功地像这样指向我的文档库 - <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 模式发布该产品,但由于这个问题我陷入了困境。任何指示、建议都会拯救我!

最佳答案

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

如果是这样,您的应用服务器配置不正确。您的服务器本身不会提供任何视频;该作业被卸载到 S3。您需要提供一个 URL 重写规则,以便 http://www.example.com/videos/ ,而不是像您那样定义 docBase将 s 指向新的 S3 http 端点 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.

如果您还没有,您需要开发一个具有上述存储桶适当权限的上传接口(interface)。请参阅Java Upload File了解更多信息

关于java - 如何将驻留在 Amazon ec2 实例中的 Tomcat 7 server.xml 文档库指向 Amazon S3 存储桶中的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33301070/

相关文章:

amazon-web-services - 通过 CloudFormation 中的 SecretsManager 获取 AWS::RDS::DBCluster 的 MasterUserPassword

python - 如何将 zip 文件从字节数组写入磁盘

java - Swing 控制问题

amazon-web-services - 自动选择子网参数值

amazon-web-services - aws cli 命令订阅带有过滤器的主题

amazon-web-services - AWS 中针对 SPA 和 API 网关的跨堆栈引用

javascript - 可以为AWS Javascript SDK为每个用户创建IAM对象吗?

java - 如何使用最新的 STS 版本(3.8.4.RELEASE)正确创建在控制台中运行的简单 Spring 项目?

java - 没有两个连续对象相同的随机选择序列

java - 通过套接字发送大文件时出错