PDF 다운로드 강제

저는 디스커스 커뮤니티에서 파일을 호스팅하기 위해 s3를 사용하고 있으며, iOS 앱을 만들었습니다. PDF 파일을 앱에서 열지 않고 다운로드하도록 하고 싶습니다.

링크 다운로드를 위한 해결책을 찾았는데요:

<a href="download-url?wtn-download-file=true"> download File</a>

하지만 s3에 업로드된 PDF 파일의 경우 어떻게 해야 할지 모르겠습니다.

수정: 주제를 잘못 이해해서 내 답변을 삭제합니다 :person_facepalming:

thoka, 고마워요 :+1:

음. 그는 내 기능 요청과 정반대인 것을 요구하는 것 같네요 …

이 소스에 따르면, 테마 컴포넌트를 통해 해당 링크에 download 속성을 추가하면 원하는 동작을 구현할 수 있습니다.

모든 PDF 링크를 변경하는 방법을 찾아야 해요… 링크가 거의 3,000개나 되거든요

디스코urs 리맵(discourse remap) 문제로 해결될 것입니다.

주의사항: 먼저 스테이징 사이트에서 테스트해 보십시오. 의도대로 작동하지 않을 수 있습니다.

안녕하세요 :wave:

이 주제가 동일한 문제인 것 같습니다: Force download pdf on IOS

이를 위해 api.decorateCookedElement를 사용해야 합니다.

아래와 같은 코드가 작동할 것입니다 :arrow_down_small:

컴포넌트의 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>

제 기기에서 테스트해 보았으며 제 환경에서는 정상 작동합니다. 다른 속성 등을 사용하려면 쉽게 수정할 수 있습니다… 도움이 되길 바랍니다 :slight_smile: