インスタントコモンズ

This page is a translated version of the page InstantCommons and the translation is 84% complete.

インスタントコモンズは、世界中にあるどのMediaWikiからでもウィキメディアコモンズにアップロードされたメディアファイルを利用できるようにするMediaWikiの機能の一つです。

任意のMediaWikiにコモンズの画像名を書き込むと ...
... 画像がコモンズから取り込まれページに埋め込まれます。

原理

2021年6月現在、ウィキメディア財団が主催するメディアの中心的リポジトリウィキメディアコモンズには7300万個以上のファイルがあります。いずれのファイルも無料のライセンスまたはパプリックドメインの元で利用できます。公式の記章や商標の利用に関するものを除き、この他に利用上の制限はありません。

コモンズが知られるようになるにつれ、そこにあるコンテンツを利用し、新しい資料を提供したいという外部からの要請も高まります。現在技術的にはウィキメディアサーバのあらゆるWebページにある画像を直接読み込むことができます。そのようなホットリンク(画像への直接リンク)は可能ですが、いくつかの理由で問題があります。

  • それは画像のライセンス条項を尊重していませんし、その他のメタデータを確実に転送することもできません。
  • メディアファイル作者の正しい著作権表示が失われるだけではなく、ウィキメディアの信頼を損ねます。
  • すべてのページビューでウィキメディアの帯域幅を消費します(画像がクライアント側またはプロキシ経由でキャッシュされている場合を除きます。この機能は現在、デフォルトで無効になっています)
  • サムネイルや注釈の生成のような役に立つ画像操作が楽にならず、特に標準レイアウト操作でウィキが利用しにくくなります。
  • URLは識別子と結びついているため、ミラーリングが複雑になります。
  • 追跡不能な外部利用ページが作られてしまい、ウィキメディア側ので必要な変更が反映されなくなります。
  • 特に断続的にしかインターネットにアクセスできないような国において、オフラインで閲覧ができないことが問題になります。

インスタントコモンズは、画像とメタデータをウィキメディアのサーバから簡単にキャッシュする方法を提供することで、これらの問題を解決しようとしています。 MediaWiki 1.27.2 / 1.28.1以降、このキャッシュ機能は無効になっています。 インスタント コモンズの最初の実装は MediaWiki 内で行われ、MediaWiki のすべての画像への操作(サムネイル、キャプション、ギャラリーなど)を実行できるようになります。 しかし他のWikiエンジンでも、以下に説明するAPIを使用して、インスタントコモンズのような機能を実装することが可能です。

基本機能

インストール時にインスタントコモンズを有効にするかどうか選択できます。できるだけ多くのユーザがウィキメディアコモンズのコンテンツを利用できるように、(アップロード可能なディレクトリが指定されているならば)デフォルトで有効化されているのが理想的です。

もしこの機能が有効化されるとwikiはウィキメディアプロジェクトのように振る舞います。すなわちウィキメディアコモンズ上にある画像などのメディアファイルを参照した際に、ファイル名を指定することでローカルwikiにアップロードされたファイルのように掲載することができます。ローカルのファイル名はウィキメディアコモンズのファイル名に優先されて使用されます。

設定

Default method: $wgUseInstantCommons

MediaWikiのバージョン1.16以降では、LocalSettings.php に以下の1行を追加するだけでインスタントコモンズを使うことができます(詳細は $wgUseInstantCommons を参照してください):

$wgUseInstantCommons = true;

MediaWikiのバージョン1.13から1.15で有効化するには、Manual:$wgForeignFileRepos#ウィキメディア・コモンズにあるファイルの使用 : ForeignAPIRepo を参照してください。

この設定は即座に反映されます。そうならない場合、ウェブサーバで curl_exec() のPHP関数が無効化されていないか確認してください。

Classic InstantCommons with local thumb caching

Default InstantCommons as enabled through $wgUseInstantCommons uses thumb images hotlinked from Wikimedia.[1]This may be slow and may also interfere with file caching (broken links). If you would like to generate and use thumbs on your local server, do not use $wgUseInstantCommons. Instead, insert this code into LocalSettings.php as described here: Manual:$wgForeignFileRepos#Usage.

$wgForeignFileRepos[] = [
	'class' => ForeignAPIRepo::class,
	'name' => 'commonswiki', // Must be a distinct name
	'apibase' => 'https://commons.wikimedia.org/w/api.php',
	'hashLevels' => 2,
	'fetchDescription' => true, // Optional
	'descriptionCacheExpiry' => 43200, // 12 hours, optional (values are seconds)
	'apiThumbCacheExpiry' => 86400, // 24 hours, optional, but required for local thumb caching
];

HTTPS

2015年6月より、ウィキメディアコモンズはHTTPS経由でしかアクセスできなくなりました。インストール環境によってはルート証明書が欠損しているために、ウィキメディアコモンズにHTTPSを通じてアクセスできない場合があります。インスタントコモンズが停止する場合、以下をお試しください。

  • php curlエクステンションをインストールしてください(一般的に信頼性が高く、適切な証明書がすでにインストールされている可能性が高いため)。DebianやUbuntuの場合: sudo apt-get install php-curl
  • 最新の証明書が格納されていることを確認します。もしphp curlエクステンションをインストールしている場合はwebawareのページかTalk:InstantCommons#Stop_workingを参照してください。

SElinux

サーバーOSがSElinuxを実装している場合は、SELinux 設定ページの専用セクションを見て、 HTTPDスクリプトとモジュールがネットワークに正常にアクセスできることを確認してください。 SElinuxがHTTPDスクリプトとモジュールがウィキメディアコモンズリポジトリに接続するのを妨げている場合、 インスタンドコモンズ機能は単に機能しません。

ファイアウォールの内側

ウィキが実行されているサーバーがファイアウォールの背後にある場合、 インスタントコモンズが機能するには、 ウィキサーバーにcommons.wikimedia.orgおよびupload.wikimedia.orgへの発信http / httpsリクエストが許可されている必要があります。 IPアドレスの範囲はwikitech:IP addressesにあります。

インスタントコモンズを経由したファイルの利用

インスタントコモンズが有効になっていれば、ウィキメディアコモンズから任意の画像(例えばこの画像)を選び、wikiアイコン の隣りにある「このファイルを利用」ボタンをクリックし、表示されるコードをwikiに貼り付けることで利用できます。 この例の場合、以下のようなコードを貼り付けます。

[[File:Wikipedia-Marker-commons.svg|thumb|このウィキに埋め込まれたウィキメディアコモンズの写真]]
 
このウィキに埋め込まれたウィキメディアコモンズの写真

これでサムネイル画像が表示できます(このページの右側にあるように表示されます)。

なお、この方法でファイルを使用する場合、ファイル利用に関するライセンスやその他の法的要件を遵守しなければなりません。Commons:Reusing content outside Wikimediaも参照してください。

スケーラビリティに関する考慮事項

インスタンドコモンズ機能を使用すると、ウィキユーザーはウィキメディアサーバーからリソースをダウンロードできるため、たとえば、30Kのリンクをに貼り付けることにより、使用しているウィキまたはウィキメディアコモンズに対するサービス拒否攻撃の可能性がないことが重要です。ウィキメディアコモンズの最大のファイルをウィキページに入れ、「プレビュー」を押します。 したがって、成功したすべてのインスタンドコモンズリクエストは、すべてのインスタンドコモンズ対応のWikiによって、発信元のユーザーまたはIPアドレスとリクエストの時刻とともにログに記録される必要があります。個々のユーザーが十分な内部帯域幅制限(デフォルトでは最大1GBになる可能性がありますが、ユーザーが構成可能である必要があります)をオーバーライドした場合、将来のイメージは24時間以内にダウンロードされません。 この制限はウィキ管理者には存在しないはずです(ウィキ管理者が自分のウィキに対してサービス拒否攻撃を実行したい場合は、停止する必要はありません。ウィキメディアに対して攻撃を実行したい場合は、そうすることはできません。ウィキメディア側を除いてそうすることをやめた) ユーザーごとの帯域幅の制限に加えて、透過的にダウンロードする必要のあるファイルのサイズに制限がある場合があります。 これは主に、特定のサイズを超えるファイルがページビューを大幅に遅延させ、ページ要求がタイムアウトする可能性があるためです。これらのファイルをダウンロードする目的で外部アプリケーションを使用することが望ましい場合があります。これにより、ページ要求を続行せずにバックグラウンドで実行できます。 最後に、インスタンドコモンズキャッシュの合計最大サイズが存在する可能性があります。このサイズを超えると、それ以上ファイルはダウンロードされません。

インスタンドコモンズ機能を使用する個々のウィキがウィキメディア財団のコストを大幅に増加させる可能性は低いですが(すべてのファイルをダウンロードする必要があるのは1回だけであり、ユーザーごとの帯域幅の制限があるため)、それでも公平で合理的ですこの機能を使用して、次のようなインスタンドコモンズの説明ページに通知を含めるプロジェクトの場合: 「このファイルは、ウィキメディア財団がホストするメディアアーカイブであるウィキメディアコモンズからのものです。ウィキメディア財団をサポートしたい場合は、ここから寄付できます...」

将来の可能性

将来的には、wiki-to-wiki authenticationと、ウィキのサブスクライブに使用される画像のデータベースを必要とする、変更のパブリッシャー/サブスクライブモデルを提供することが望ましい場合があります。これにより、ウィキ間の破壊行為の脅威も開かれます。これは、変更を有効にするために24時間以上の遅延フェーズを使用して対処できます。 双方向機能は別の可能性です。つまり、任意のwikiインストールからCommonsに無料のメディアを直接アップロードできるようにすることです。ただし、これには少なくともフェデレーション認証が必要です。 また、LiquidThreads のような大規模なプロジェクトの一部である可能性がある、Commonsポリシーについて他のWikiのユーザーに通知するためのクロスWiki通信機能が必要になる場合があります。

関連項目

References