メディアはurlコンテキストを評価する

a-blog cms Advent Calendar 2021の2日目になります。

アーカイブとメディアの違い

元々a-blog cmsでは、添付ファイルは、画像・ファイルに関係なく

  • archive

フォルダに入っていました。その後バージョンアップに伴い「メディア」が登場。現在ではファイルの種類に合わせて

  • media(画像)
  • storage(画像以外の動画やファイルなど)

という振り分けで保存されるようになっています。

利用するユニットが異なるので、フォルダも異なるフォルダで管理されていますね。今回文章を書くにあたって改めて確認しました。

メディアはurlコンテキストを評価する

メディアは以前からあるアーカイブファイルを「強化したもの」という認識で利用しています。ですが、私が「メディアならでは」の挙動として、把握していないことがありました。

それがアーカイブとメディアのurlの処理の違い

  • アーカイブフォルダにあるファイルは、実態へのリンク
  • メディアで生成されるリンクは「urlコンテキストを評価する」

この違いに気がつく出来事があったのです。

「ファイルを使ってアーカイブ」にあるファイル

https://datafarm.jp/archives/010/202112/ロゴ.pdf.pdf

がファイルへのリンクになります。


ファイルを開く

アーカイブで登録したpdf

メディアに登録したpdfファイル

https://datafarm.jp/blog/media-download/13/386fb2d86f423f87/

がメディアの管理画面に表示されているパーマリンクになります。


メディアで登録したpdf

メディアのurlは、このような形でも表示が可能

このリンクですが、実は

https://datafarm.jp/media-download/13/386fb2d86f423f87/

でも表示可能です。違いは

  • /blogの文字がないこと。

実際にメディアを登録したのは

  • https://datafarm.jp/blog/

ですが、ルートブログは子ブログへの支配権限が備わっています(親なので)そのため

  • https://datafarm.jp/

に「media-download/13/386fb2d86f423f87/」をそのまま接続してもurlコンテキスト的には問題がなく、pdfの画像は表記されます。

このような書き換えは、アーカイブファイルではあり得ません。 妙な言い方をしますが、メディアの場合は

  • 正しいパーマリンクでなくてもurlコンテキスト的に正しければ、表示は可能

となります。

これが問題になるケースがあるのか?

ありました。

https://datafarm.jp/media-download/13/386fb2d86f423f87/

このリンク

  • シークレットブログの子ブログに登録されたユーザがクリックしても、ルートブログへの権限がないため「表示がされない(拒否される)」のです。

全てが公開ブログであれば、表示されない問題は発生しません。ですが「シークレットブログ」をここに掛け算すると権限の関係がシビアになり「思っていた表示にならない」ケースが出てきたのです。

このあたりについては次の「a-blog cms zoom up 2021/12」でお話しさせていただきます。会員制ブログなどでは、このような問題に当たるケースもあるので、そのような用途をお使いの方、ぜひプレゼンの方もご覧になってください。


関連記事

この記事のハッシュタグに関連する記事が見つかりませんでした。