Alfresco Share: при загрузке отсутствует расширение файла - PullRequest
1 голос
/ 02 апреля 2020

мы используем Alfresco 5.2 CE и у нас возникают проблемы с загрузкой файлов.

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

Но при загрузке этих файлов для получения локальной копии документ загружается без расширения.

простое решение - заставить людей не переименовывать файлы после загрузки. Второй - изменить ссылки на скачивание, чтобы расширение файла всегда добавлялось, если оно отсутствует. Я искал, где это изменить, но не нашел. Кто-нибудь знает, как это сделать?

Заранее спасибо

1 Ответ

2 голосов
/ 05 апреля 2020

Я не думаю, что это хорошая идея, чтобы ввести эту настройку, потому что поведение OOTB является правильным и разумным.

Существует множество различных способов загрузки содержимого документа в Alfresco, и вы вам нужно будет убедиться, что вы настроили все из них, чтобы получить согласованное имя для документа.

Если вас интересует только имя, которое вы получаете при загрузке документа с Alfresco Share, вам следует настроить webscript, который вызывает Share.

Используя инструмент разработки в вашем браузере, вы можете видеть, что Alfresco выполняет следующий вызов:

https://your-hostname.com/share/alfresco/slingshot/node/content/workspace/SpacesStore/86b142c2-7e51-4a49-9f5f-451e216e6d63/your-document-without-extension?a=true

Это использует Share в качестве прокси для веб-скрипта "Alfresco" (он же ACS).

Фактический вызываемый веб-скрипт:

/ alfresco / service / slingshot / node / content / workspace / SpacesStore / 86b142c2-7e51-4a49-9f5f-451e216e6d63 / ваш-документ-без-расширения? A = true

Имя, переданное в wesbscript, полностью игнорируется. Wesbcript решает имя загруженного файла, устанавливая заголовок ответа «Content-Disposition» (см. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition)

Если вы хотите найти, что реализует этот сценарий, самый простой способ это использовать «Индекс службы Alfresco», доступный по адресу / alfresco / service / index / all

Поиск пути к тексту сценария «рогатка / узел / контент». Вы найдете что-то похожее на фрагмент на скриншоте ниже (он может отличаться в другой версии Alfresco):

enter image description here

Нажмите на ссылку, показанную на скриншот Откроется страница с информацией об этом веб-сценарии.

Там вы можете видеть, что дескриптор файла для этого веб-скрипта - "org / alfresco / slingshot / download.get.des c. xml". Вы должны быть в состоянии найти bean-компонент в контексте Spring с идентификатором «webscripts.org.alfresco.slingshot.download.get» (если честно, я не проверял, но он должен быть там).

Вы также можете видеть, что класс Java поддерживается: org.alfresco.slingshot.web.scripts.SlingshotContentGet

Вы можете начать с него и посмотреть, что вам нужно настроить.

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

...