Назад | Перейти на главную страницу

доступ по ссылке на файл по электронной почте

у нас есть сервер, на котором размещено приложение. в нашей текущей конфигурации наш веб-сервер (IBM HTTPD) перенаправляет все свои запросы на сервер приложений (WAS).

Сейчас, мы хотим получить доступ к файлу в каталоге приложения по ссылке в электронном письме. Такой, что если мы щелкнем по ссылке, мы сможем получить всплывающее окно для сохранения / открытия файла с сервера.

мы попробовали простой подход к этому с помощью tomcat. мы поместили файл в папку htdocs, и мы смогли разрешить его ссылку как: http: // [имя хоста]: [порт] / [contextRoot] / [файл]

но когда мы попытались сделать то же самое в IBM HTTPD htdocs, мы не смогли получить доступ к файлу (поскольку запросы перенаправляются в WAS). теперь, каковы подходы к доступу к файлу? можем ли мы написать сервлет для перенаправления входящего запроса в файл?

любое руководство по запуску будет действительно полезным. пожалуйста, помогите.

Вы определили проблему: поскольку вы перенаправляете все в WebSphere, Apache не будет обслуживать файлы из htdocs.

Вы также определили одно возможное решение: напишите сервлет. Сервлет будет возвращать двоичный поток файла, поэтому вам придется обрабатывать вручную чтение файла из файловой системы, установку заголовков, разбиение на части и т. Д. Или поиск для него некоторой библиотеки Java. В любом случае код Java на сервере приложений будет обрабатывать доступ к файлам, в то время как Apache HTTPD может сделать это намного быстрее и производительнее.

В качестве альтернативы не перенаправляйте все. Вы можете написать отдельную строку, перенаправляющую каждый корень контекста (Redirect или ProxyPass), или написать несколько перенаправлений на основе регулярных выражений.

Мне нравится решение с написанием ProxyPass для каждого корня контекста, потому что ваш Apache работает тогда как фильтр, разрешая доступ только к тем корням контекста, которые настроены вручную. Вы можете сгенерировать файл конфигурации со строками ProxyPass, используя скрипт, если у вас большое количество модулей на вашем WAS.

Что ж, поскольку IBM HTTPD основан на Apache, в каталоге 'conf' установки должен быть файл httpd.conf для редактирования.

Затем прочтите, как настроить псевдоним в конфигурации Apache. http://httpd.apache.org/docs/current/mod/mod_alias.html#alias

Псевдоним каталога, в котором вы хотите хранить загружаемые файлы, и установите соответствующие разрешения для WAS на запись в него и для Httpd на его чтение. И вам, очевидно, нужно будет сообщить WAS, куда поместить файл со свойством в вашем приложении.

Вы можете попробовать этот подход: используйте cron для регулярного копирования файла в каталог, где вы можете установить соответствующие разрешения, а затем включить этот каталог в качестве виртуального сервера в конфигурацию Tomcat. Обратной стороной является то, что вы получите файл давностью не менее 1 минуты. Вам понадобится небольшой сценарий bash, который скопирует файл и установит разрешения, чтобы сделать его доступным через веб-сервер.