通过邮件访问文件链接

我们有一个托pipe应用程序的服务器。 在我们当前的configuration中,我们的Web服务器(IBM HTTPD)将其所有请求redirect到应用程序服务器(WAS)。

现在, 我们要通过电子邮件中的链接访问应用程序目录下的文件 。 这样, 如果我们点击链接,我们将能够popup来保存/从服务器打开文件

我们用tomcat尝试了一个简单的方法。 我们在htdocs文件夹下放置了一个文件,我们可以parsing它的链接: http:// [hostname]:[port] / [contextRoot] / [file]

但是当我们试图在IBM HTTPD htdocs下做同样的事情时,我们无法访问文件(因为请求被redirect到WAS)。 现在,访问文件的方法是什么? 我们可以编写一个servlet将传入的请求redirect到文件吗?

任何启动指南将是非常有帮助的。 请协助。

您可以尝试以下方法:使用cron将文件定期复制到可以设置apropiate权限的目录,然后将该目录作为Tomcatconfiguration中的虚拟服务器。 缺点是你会得到一个至less1分钟的文件。 您将需要一个littel bash脚本来复制文件并设置权限以使其可通过Web服务器访问。

那么,由于IBM HTTPD是基于Apache的,所以在安装的“conf”目录中应该有一个httpd.conf来编辑。

然后阅读如何在Apacheconfiguration中设置别名。 http://httpd.apache.org/docs/current/mod/mod_alias.html#alias

别名为您要存储可下载文件的目录,并为WAS设置适当的权限,以供Httpd读取。 而且你需要让WAS知道你的应用程序中的文件应该放在哪里。

您已经确定了这个问题:因为您将所有内容redirect到WebSphere,所以Apache将不会从htdocs提供任何文件。

您已经确定了一个可能的解决scheme:编写servlet 。 servlet将返回文件的二进制stream,所以你必须手动处理从文件系统读取文件,设置头文件,分块等,或者find一些Java库。 无论如何,应用程序服务器上的Java代码将处理文件访问,而Apache HTTPD可以更快,更高效地执行。

作为select, 不要redirect一切 。 您可以编写单独的行redirect每个上下文根(redirect或ProxyPass)或写一些基于正则expression式的redirect。

我喜欢为每个上下文根编写ProxyPass的解决scheme,因为您的Apache可以作为filter,只允许访问手动configuration的上下文根。 如果您的WAS上有大量模块,则可以使用脚本使用ProxyPass行生成configuration文件。