Nextcloudでurl共有したpdfをwebに埋め込みたい その2

ドキュメント共有サイトの無料枠を使うのが辛くなったのでNextcloudのURL共有でどうにかならないかなと思っています．
まずはpdfファイルをobjectタグで埋め込む方法を試しました．

Nextcloudでurl共有したpdfをwebに埋め込みたい – matoken’s meme

この方法のデメリットはcgiを用意しないといけない，pdfを読む気がなくてもページを読み込むとpdfファイルがダウンロードされてしまいページ容量が大きくなってしまう．そしてNextcloudに「<pdfファイル名> が公開リンクからダウンロードされました」という通知がたくさん届いてしまいちょっとうるさいといった感じです．

途中のcgiでキャッシュしてプレビュー用の画像を用意してwebにはそのプレビュー画像を表示しておけばいいのではとcgiを書き換えていました．headで引っ張ってもダウンロードされた扱いになるしdbから実ファイルの場所を探してそこからダウンロードするように，サムネイルもdbから引っ張ってこれるかな?とかやってましたがふとそれだと標準の機能で出来るのではと気づいたので試してみました．

pdf共有URLの末尾に /preview を付けるとプレビュー画像が表示されます．(標準では50MB以下のファイルの場合)

Note

共有URLが https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ のときのプレビュー画像URL https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ/preview

これを利用してこんな感じに書くと，

AsciiDocでの例

[quote,'link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ]']
link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[image:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ/preview[width=100%]]

htmlへ変換した例



<img src="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4
nZ/preview" alt="preview" width="100%">

&#8212; https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ




こういうふうになりました．クリックするとNextcloudのpdfファイルプレビュー画面が開かれ，最近のモダンウェブブラウザではそのまま閲覧できます．

— https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ

SpeakerDeckなんかでは埋め込んだページでそのまま読むことも出来ますがとりあえずこれならcgiも必要なくNextcloudの標準機能だけ(恐らくNC13以降で可能)でいけるのでそこそこいい感じではないかなと思います．

環境

$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server 1:10.3.27-0+deb10u1