Confluence - リンクの検証方法
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
スペースに複数のページが含まれ、ページのコンテンツに外部 URL に対する複数の参照が含まれる場合があります。
Confluence はこれらのリンクを自動的に検証する方法を提供していないため、ユーザーがこれらの参照で無効なサイトにアクセスするのを防ぎたい場合、管理者は多数の手動作業を行う必要があります。
診断
リンクを自動検証する方法はないため、管理者は 1 ページずつアクセスしてリンクを 1 つずつクリックし、機能していないエントリを手動で修正する必要がある。
提案
これについて、Gathering Interest ステータスの機能リクエストがあります。これはまだ実装されていないため、管理者には引き続きリンクを検証するための回避策が必要となります。
回避策
管理者の負担を軽減するため、一部の作業を自動化し、検証すべきデータを収集する方法を提供します。方法は次のとおりです。
まず、対象のスペースのすべてのページで、すべての外部リンクを見つけます。Confluence データベースにはこれらのデータを保存する
Links
というテーブルがあり、適切なクエリを実行することでリンクを見つけることができます。つまり、データベース内で以下のクエリを実行し、各スペース ページのスペース名、ページ、およびリンクのレポートを取得できます。SELECT s.spacename as Space, c.title as Page, l.destspacekey as SpaceOrProtocol, l.destpagetitle as Destination FROM LINKS l JOIN CONTENT c ON c.contentid = l.contentid JOIN SPACES s ON s.spaceid = c.spaceid WHERE c.prevver IS NULL and s.spacekey = 'YOUR_SPACE_KEY_HERE' ORDER BY l.destspacekey
- これらの結果を Excel にエクスポートします。エクスポートされると次のようになります。
protocol
列とdestination
列の間に新しい列を挿入し、次のようにします。- これが完了すると、スプレッドシートの
protocol
、colon
、およびdestination
を Sublime や Notepad++ (または使用したいその他のツール) などのテキスト エディターにコピーできるようになります。これにより、スペースと URL の一覧を取得できます。 URL はスペースの使用をサポートしていないため、実際の URL が作成できるまで、検索と置き換えを実行してスペースのトリミングを行います。この処理には他の方法を使用しても構いません。出力は次のようになります。
http://www.thisisbroken.com.br http://www.thisisalsobroken.com.br https://confluence.atlassian.com/x/ASEC https://confluence.atlassian.com/x/ASEC https://confluence.atlassian.com/x/ASEC https://confluence.atlassian.com/x/ASEC https://confluence.atlassian.com/x/ASEC https://confluence.atlassian.com/x/ASEC
- 次に、このファイルをどこかへ保存して、ファイルのパス/名前をコピーします (次の手順で必要となります)。
The second part of the exercise now that we have all URLs we need is to test them. Here's a bash script to aid you in doing that - Please note you need to have cURL installed in the computer or server hosting the terminal that is going to be used for testing purposes; please remember to replace the username and password values with a valid account and its corresponding password:
for WEBLINK in $(cat MY/PATH/links.txt); do CURLOUTPUT=$(curl -u username:password -I -L $WEBLINK 2>/dev/null | grep ^HTTP) echo "$WEBLINK :: $CURLOUTPUT" done
- 上記のスクリプトを実行する前に、
MY/PATH/links.txt
を、システム内にある、リンクを含むテキスト ファイルのパスで置き換えます。 - 完了したら実行します。
ターミナルの出力は次のようになります。
http://localhost:8090/display/HS/Test+for+PS-263967 :: HTTP/1.1 404 Not Found http://localhost:8090/display/HS/Test+for+PS-26396 :: HTTP/1.1 200 OK http://localhost:8090/display/HS/Test+for+PS-263965 :: HTTP/1.1 404 Not Found http://www.thisisbroken.com.br ::
- これを使用すると、動作していない URL を特定できます。上の例では、200 OK 以外の結果を返した URL は壊れています。
- このチュートリアルの最初で SQL クエリから生成した URL レポートの結果とクロスチェックして、各ページに壊れた URL が存在することを確認できます。これにより、ページを 1 つ 1 つ確認しなくても壊れた URL にのみ移動して修正することができます。