【自宅web】メディアを短縮URLで配信する

はじめに

自宅webサーバーの作り方については、以前の投稿でも説明しました。その中でも触れたように、自宅サーバーは、かつてブームになったものの衰退した歴史があるわけで、その衰退の理由に、主に、コストメリットが低いこと、災害に弱いことが挙げられます。しかし、そうしたデメリットを取り除いてみれば、DIYで産直配信を行うことの楽しさは相変わらずあるわけです。

よくメリット、デメリットを比較してデメリットが大きいので、やめてしまうことがあります。費用対効果、効果より費用が大きいのでやめてしまうことがあります。しかし、今後費用は下がる、今後デメリットは減ることが見通せるならどうでしょう。あるいは費用には労働力も入るわけですが、自分が頭や手足を使うことで出費が減らせる、あるいは、そうした作業が趣味や楽しみに転換できるなら、一挙両得という話になります。

2020年頃からそこへ、AppleシリコンMacMiniという、低電力高性能、常時稼働向きの、周辺機器なしの見た目サーバーのコンピュータが登場しました。しかも非常に小さくなってきました。コンビを組むNASも大容量のSSDが挿せるようになりどんどん小型化してきています。注目する技術→📄

明るい光を感じますね。

クラウドにするだけでなくポータブルにする

それで将来イメージを見通すと。。キャンピングカー、移動販売車のようになるだろうと。

MacMiniがもっと小さくなる。NASがもっと小さくなる。一緒に持ち運べるようになる。

そう。NASとMacMiniへwebサーバーとファイル管理を積み込むのは、今はまだ自宅に固定された大袈裟なサーバーです。だからクラウドストレージの方が優れていると直ぐに思ってしまいます。しかし、バッテリー駆動のポケットサイズ、ポータブルにできれば、災害にも強いです。問題は解決します。技術的にそれほど難しくはないでしょう。

ですから、自宅サーバーの構造思想は廃れるものではない、そう思えてくるのです。

さて、そんな枠組みの中で、今回の小さなテーマは、「短縮URL」作りです。

再生用URL 5種類

(A)

Dropboxリンク型 

https://www.dropbox.com/scl/fi/3qe8a289x8xx15prpu8wi/_test.png?rlkey=16oocsjxwqe594xhr68z8z67x&raw=1

(B)

自宅サーバーパス記述型  日本語を直接解読できないのでエラーになる。

https://imakat.synology.me/wp-content/pmedia/これはテストです_test.png

(C)

日本語エンコード型 

https://imakat.synology.me/wp-content/pmedia/%E3%81%93%E3%82%8C%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E3%81%A7%E3%81%99_test.png

(D)

「画像ライブラリー作成」を行なって、外部サーバー短縮型URLを作る

https://imakat.com/im.php?id=MlgztRkF

(E)

マッピング更新を行って、自宅サーバー短縮型URLを作る。

https://imakat.synology.me/3zqfq8nn.png

以上5種類がありますが、(B)は表示が不可能になりやすいので除くと4種類になります。

この中で、WordPress投稿内で使用するのに適しているのは、どれか。

それは、(D)です。

この4種類の中で、動的URLは(D)だけです。カートリッジ型です。

それで(D)を採用しました

photoct.jsonファイルの中に下記のレコードがあったとします。id=の右側にあるMlgztRkFをこのファイルの中のphotoidから探し、見つけたsourceURLから、(A)のDropboxリンクを表示することになります。sourceURLには、Dropboxに限らず、なんでも書き込むことができます。

このjsonファイルを変更して、サーバーに送り込めば、カスタムhtmlの”https://imakat.com/im.php?id=MlgztRkF”はそのままで、配信サーバーを変えたり、コンテンツ自体を別のものに変えてしまうこともできます。

[

{
    “photoid”: “MlgztRkF”,
    “sourceURL”: “https://www.dropbox.com/scl/fi/3qe8a289x8xx15prpu8wi/_test.png?rlkey=16oocsjxwqe594xhr68z8z67x&raw=1”,
    “updateDate”: “2025-02-05T00:34:20.000Z”,
    “embedCode”: “<figure class=\”wp-block-image size-large\”><img src=\”https://www.dropbox.com/scl/fi/3qe8a289x8xx15prpu8wi/_test.png?rlkey=16oocsjxwqe594xhr68z8z67x&raw=1\” alt=\”\”/></figure>”
  },

]

また、(A)Dropboxのトークン型URL や(C)WordPressサーバーの日本語エンコードURLは、長い記述になるという短所もあります。

カスタムhtmlの記述をスッキリとアッサリとしたいなら、8桁程度のランダム文字列をidに設定すればかなり改善します。

ランダム文字列の扱い

ところで、この8桁のランダム文字列ですが、1234e678などの数字とeで構成されていると、数字と解釈されてしまいます。openssl rand -hex4と記述すると、1234e678のような科学表記になる可能性があります。cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 8 | head -n 1を使って、英数字混合にすることで純粋な文字列として扱うことにしました。

画像ライブラリ作成 AppleScript📄

以上です。