Я использую S3 для размещения файлов на своём сообществе Discourse. Я создал iOS-приложение и мне нужно скачивать PDF-файлы, а не открывать их внутри приложения.
Я нашёл решение для ссылки на скачивание:
<a href="download-url?wtn-download-file=true">Скачать файл</a>
Но для PDF, загруженных в S3, я не знаю, что делать.
Canapin
(Coin-coin le Canapin)
12.Октябрь.2023 08:49:15
2
Редакция: удаляю свой ответ, так как неправильно понял тему
Спасибо thoka
thoka
(Thomas Kalka)
12.Октябрь.2023 10:10:31
3
Хм. Похоже, он требует ровно обратного тому, что я просил в своем запросе на новую функцию…
thoka
(Thomas Kalka)
12.Октябрь.2023 10:14:27
4
Согласно этому источнику , вы можете добиться желаемого поведения, добавив атрибут download к этим ссылкам через компонент темы.
Мне нужно найти способ изменить все мои ссылки на PDF… их почти 3000
Это должно быть вопросом перенастройки дискурса
This guide explains how-to change the domain name of your Discourse site, and includes information about setting up DNS changes, editing configuration files, updating site settings, and correcting social logins and post content to reflect your new domain name.
This guide is for self-hosted Discourse instances that were installed using our installation guide on GitHub . If you are hosted by Discourse , please see Configure your domain name for hosted Discourse for specific …
Предупреждение: сначала протестируйте это на тестовом сайте. Это может сработать не так, как ожидается.
Don
12.Октябрь.2023 18:57:39
7
Привет
Думаю, эта тема аналогична: Force download pdf on IOS
Для этого нужно использовать api.decorateCookedElement .
Должно работать что-то вроде этого
Разместите это в секции Header как компонент.
<script type="text/discourse-plugin" version="0.8.42">
api.decorateCookedElement(
element => {
const pdfFiles = element.querySelectorAll("a.attachment[href$='.pdf']");
if (!pdfFiles.length) {
return;
}
pdfFiles.forEach((pdf) => {
pdf.setAttribute("download", "");
});
},
{ id: "download-pdf", onlyStream: true }
);
</script>
Я протестировал это на своём устройстве, и у меня всё работает. Но если вы захотите использовать другие атрибуты и т. д., вы легко сможете их изменить… Надеюсь, это поможет