<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>リンク切れ | imakat.com</title>
	<atom:link href="https://imakat.com/tag/%e3%83%aa%e3%83%b3%e3%82%af%e5%88%87%e3%82%8c/feed/" rel="self" type="application/rss+xml" />
	<link>https://imakat.com</link>
	<description>工夫と改善で人生をちょっと豊かに</description>
	<lastBuildDate>Thu, 29 Jan 2026 11:13:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/imakat.com/wp-content/uploads/2023/07/cropped-80d64ecd340db4e2ca3224859b04caed.png?fit=32%2C32&#038;ssl=1</url>
	<title>リンク切れ | imakat.com</title>
	<link>https://imakat.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">160909258</site>	<item>
		<title>第４章：リンク切れを防ぐ仕組みほか</title>
		<link>https://imakat.com/2025/04/26/25984/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Sat, 26 Apr 2025 11:06:57 +0000</pubDate>
				<category><![CDATA[マイライブラリ]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[デジタル]]></category>
		<category><![CDATA[ものづくり]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Webホスティング]]></category>
		<category><![CDATA[識別子]]></category>
		<category><![CDATA[直リンク]]></category>
		<category><![CDATA[トークンリンク]]></category>
		<category><![CDATA[リンク切れ]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=25984</guid>

					<description><![CDATA[メディアライブラリを作ろう 大手YouTubeなどに依存せず、独自に配信を行うのであれば、小規模な配信所を複数確保し、さらにそれらを迅速に切り替えられる仕組みを整えることが重要です。ここまでの章では、配信所には「トークン [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>メディアライブラリを作ろう</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=I299uPMY.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=I299uPMY.png" alt="" style="width:237px;height:auto"/></a></figure>



<p>大手YouTubeなどに依存せず、独自に配信を行うのであれば、小規模な配信所を複数確保し、さらにそれらを迅速に切り替えられる仕組みを整えることが重要です。<br>ここまでの章では、配信所には「トークンリンク方式」と「直リンク方式」があり、それぞれに特徴と注意点があることを説明してきました。</p>



<ul class="wp-block-list">
<li><strong>トークンリンク方式</strong>は、大手クラウドが採用しており、セキュリティ重視。そのうちDropboxなど限られたサービスのみが配信向きです。</li>



<li><strong>直リンク方式</strong>は、Webサーバーがインストールできれば、その中で容易に構築できますが、エンコード済みURLを管理する必要があり、リンク切れ対策が不可欠です。</li>
</ul>



<p>この章では、特に「リンク切れを防ぐ仕組み作り」について具体的に説明していきます。</p>



<h3 class="wp-block-heading"><strong>1. Dropboxへの依存リスク</strong>〜【脱Dropbox】は可能か〜</h3>



<p>トークンリンク方式には大きな利点があります。<br>ファイルパスやファイル名を変更しても、共有リンクURL（トークンリンク）は基本的に変更されません。<br>これにより、配信側にとって運用が非常に安定します。</p>



<p>しかし、<strong>ストリーミング再生に対応したトークンリンク方式</strong>を許可しているクラウドサービスは非常に少なく、現状では<strong>Dropbox</strong>がほぼ唯一の選択肢となっています。<br>このため、Dropboxに頼ってしまう、配信インフラをDropboxのみに依存するリスクが懸念されます。<br>では、Dropboxの代替となるクラウドは存在するのでしょうか？ 次に、主要なクラウドストレージの状況をまとめてみます。</p>



<figure class="wp-block-flexible-table-block-table"><table class="has-fixed-layout"><tbody><tr><td style="background-color:#dddddd"></td><td style="background-color:#dddddd"><strong>トークンリンク方式のクラウド</strong></td><td style="background-color:#dddddd"><strong>ファイルパスから共有リンク取得</strong></td><td style="background-color:#dddddd"><strong>共有リンクからストリーミング表示可能か</strong></td><td style="width:30%;background-color:#dddddd"><strong>コメント</strong></td></tr><tr><td><img data-recalc-dims="1" decoding="async" width="150" height="150" class="wp-image-23536" style="width: 150px;" src="https://i0.wp.com/imakat.com/wp-content/uploads/2024/08/apps.23871.13668225141277943.68205d94-7cbe-41f0-893f-53305fceb682.4c98395a-28d0-4eee-9b6e-08ecd210e980.png?resize=150%2C150&#038;ssl=1" alt=""></td><td><strong>Dropbox</strong></td><td>可能 &#x2705;(API使用)</td><td>可能 &#x2705;（raw=1 などで直再生可）</td><td style="width:30%">Mac Finderパスとクラウドパスが一致、取得容易。dl=0をraw=1に変換でストリーミング。</td></tr><tr><td><img data-recalc-dims="1" decoding="async" width="150" height="134" class="wp-image-26007" style="width: 150px;" src="https://i0.wp.com/imakat.com/wp-content/uploads/2025/04/efb949124a22b7e8531beeaa646f299b.png?resize=150%2C134&#038;ssl=1" alt=""></td><td><strong>Google Drive</strong></td><td>工夫すれば可能 △</td><td>部分的に可能 △（制限あり）</td><td style="width:30%">API検索でファイルID取得可能。基本はビューアーページ誘導。ファイル種別・設定次第で挙動が変わる。</td></tr><tr><td><img data-recalc-dims="1" decoding="async" width="150" height="110" class="wp-image-26009" style="width: 150px;" src="https://i0.wp.com/imakat.com/wp-content/uploads/2025/04/9cc2564f50d59bc8e0dd4add9c49cb9f.png?resize=150%2C110&#038;ssl=1" alt=""></td><td><strong>OneDrive</strong></td><td>工夫すれば可能 △</td><td>部分的に可能 △（制限あり）</td><td style="width:30%">API経由でパス整形可能。ストリーミング可否はファイル形式やブラウザに依存。</td></tr><tr><td><img data-recalc-dims="1" loading="lazy" decoding="async" width="150" height="103" class="wp-image-26008" style="width: 150px;" src="https://i0.wp.com/imakat.com/wp-content/uploads/2025/04/0950888e1f0b5b1fffae2a277d0086d7.png?resize=150%2C103&#038;ssl=1" alt=""></td><td><strong>iCloud Drive</strong></td><td>ほぼ不可能 &#x274c;</td><td>ほぼ不可能 &#x274c;</td><td style="width:30%">API経由での共有リンク取得不可。共有リンクもストリーミングに適さない。</td></tr></tbody></table></figure>



<p>このように、複数のクラウドをトークンリンク方式で使い分けることは現実的ではなく、<strong>トークンリンク方式についてはDropboxに一本化する</strong>のが最も合理的な選択だと言えます。繰り返し言います。それゆえに、Dropboxに依存したくなるのですが、サービスが永続する保証など無く、そこにリスクがあるわけです。</p>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/imakat.com/wp-content/uploads/2025/07/006fc22b73c6d589b68264a753102b7a.png?ssl=1" target="_blank"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="581" src="https://i0.wp.com/imakat.com/wp-content/uploads/2025/07/006fc22b73c6d589b68264a753102b7a.png?resize=600%2C581&#038;ssl=1" alt="" class="wp-image-26550" style="width:121px;height:auto" srcset="https://i0.wp.com/imakat.com/wp-content/uploads/2025/07/006fc22b73c6d589b68264a753102b7a.png?w=600&amp;ssl=1 600w, https://i0.wp.com/imakat.com/wp-content/uploads/2025/07/006fc22b73c6d589b68264a753102b7a.png?resize=500%2C484&amp;ssl=1 500w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure>



<h3 class="wp-block-heading"><strong>2. <strong>直リンク方式による配信とリンク切れ対策</strong></strong></h3>



<p>一方、<strong>直リンク方式</strong>ならば、Dropboxに依存せずに複数の配信所を設けることが可能です。<br>具体的な候補は以下のようなものがあります。</p>



<ul class="wp-block-list">
<li><strong>pCloud(パブリックフォルダ利用)</strong></li>



<li><strong>WordPressサーバー(Xserverなど)</strong></li>



<li><strong>自宅Webサーバー</strong></li>



<li><strong>レンタルWebサーバー（独自ドメイン）</strong></li>
</ul>



<p>※pCloudは今では特異な存在で、トークンリンク方式と直リンク方式の両方を提供しています。昔のDropboxに似ています。pCloudは使い勝手のいい仕組みを持っているのですが、サーバーが欧州と北米にしかないので、遅延が生じ易いです。日本にサーバーがあればかなり有用だと思います。</p>



<p>これらはいずれも、ドメイン名直下またはサブディレクトリに<strong>メディアフォルダをコピーするだけ</strong>で、新たな配信拠点をすぐに追加できます。</p>



<p>ただし、ここで問題になるのが、ファイルパスやファイル名の変更に伴う<strong>リンク切れ</strong>です。</p>



<p>これを防ぐために、次のような仕組みを用意します。</p>



<figure class="wp-block-flexible-table-block-table"><table class="has-fixed-layout"><tbody><tr><td colspan="2" style="background-color:#dddddd"><strong>バックグラウンド処理</strong>(常時監視する)&#x2b07;&#xfe0f;</td></tr><tr><td colspan="2">ファイルパス、ファイル名の変更前と変更後を記録する。</td></tr><tr><td colspan="2"><a href="https://imakat.com/script_list/?pubtxt=ファイルパス変更処理_gasからpython移行_pub.txt" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=zrU95MiY.png" alt="" style="width:120px; height:auto;"></a></td></tr></tbody></table></figure>



<figure class="wp-block-flexible-table-block-table"><table class="has-fixed-layout"><tbody><tr><td colspan="2" style="background-color:#dddddd"><strong>メディアフォルダの更新方法</strong>(第２章のパイプライン処理では、スクリプトを記述しているもののみ取り上げ)&#x2b07;&#xfe0f;</td></tr><tr><td colspan="2"><strong>Dropbox</strong>：Dropboxのローカルフォルダが全ての源流。私の場合、mmedia、pmediaという名のフォルダを設けている。この２つのフォルダを、各サーバーへコピーあるいは同期する。</td></tr><tr><td colspan="2"><s><strong>自宅サーバー</strong>：SynologyNASにWordPressサーバーを建てている。SynologyNASのCloudSyncを使いDropbox経由で同期している。</s></td></tr><tr><td colspan="2"><strong>Xserver(WordPress)</strong>：SynologyNASからXserverへ、ShellScriptのrsyncにより送り込んでいる。毎分処理。</td></tr><tr><td colspan="2"><strong>pCloud</strong>：pCloudDriveの同期機能を使い、ローカルフォルダとpCloudのPublic Folder内のフォルダと同期する。</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>ファイルパス変更記録ファイル</strong>を保持する<br>（Macで変更前ファイルパスと変更後ファイルパスを記録して、Spreadsheetを更新する）</li>



<li>ライブラリ登録の時、これを照合して、配信用URL（例：https://imakat.com/rd.php?id=Abcd0123.png）に紐づくパスやファイル名を<strong>最新のものに置き換えたJSONファイルを生成</strong>する。</li>
</ul>



<p>こうすることで、仮にファイル構成やファイル名が変わっても、<strong>配信</strong><strong>URL</strong><strong>自体は変更せずに運用を継続できる</strong>ようになります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=u1XI5P9k.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=u1XI5P9k.png" alt="" style="width:212px;height:auto"/></a></figure>



<h3 class="wp-block-heading"><strong>３. </strong>メディアライブラリ更新のアルゴリズム</h3>



<p>メディアライブラリの更新の判断は以下のようになっています。まず最初にファイルパスが変更されたかどうかが基軸になります。ファイルパスが同じで、Dropboxリンクが変更されている場合は、メディアライブラリに登録するDropboxリンクも変更されます。Dropboxリンクが同じでファイルパスが変更されている場合は、メディアライブラリに登録するファイルパスも変更されます。この仕組みにより、ファイルパスやフォルダ名が変更されても、配信用URLは不変で運用ができるようになっています。</p>



<a rel="noopener" target="_blank" href="https://docs.google.com/drawings/d/1JgcOPS8GESxG34LDFSUE1i3CVe0PSM6sAyZrfqkV0cc/edit?usp=sharing" 
>
<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vSANFz-ypSmjCU127MiCadlAinb6t1kCfcIgPHB5tiKXOw8EXyxU6RKubeYVeWA-K_QeYQ07X9Y5rz7/pub?w=960&#038;h=720"
></a>



<h3 class="wp-block-heading"><strong>４. </strong>まとめ</h3>



<ul class="wp-block-list">
<li><strong>トークンリンク方式</strong>は運用が安定していますが、Dropboxへの依存が避けられず、サービス継続性にリスクがあります。</li>



<li><strong>直リンク方式</strong>は柔軟性が高く、複数の配信拠点を設けることが可能ですが、リンク切れ対策が不可欠です。</li>



<li><strong>リンク切れを防ぐ仕組み</strong>として、ファイルの変更監視と配信用URLの動的更新が効果的です。</li>
</ul>



<p><strong>第５章〜終わりに、では、「動画パッケージの作り方」</strong>についてご紹介します。<br></p>



<p>&#x27a1; <a href="https://imakat.com/2025/04/29/26044/" target="_blank">第５章を読む</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="has-text-align-center"><a href="https://imakat.com/media_library1" target="_blank">&#x1f517; 目次ページへ戻る</a></p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">25984</post-id>	</item>
	</channel>
</rss>
