はじめに
自宅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を使って、英数字混合にすることで純粋な文字列として扱うことにしました。
以上です。