본문 바로가기
미디어위키

(번역) InstantCommons

by 다움위키 2024. 11. 6.

원문 보기: https://dawoum.duckdns.org/wiki/InstantCommons

 

Original article: mw:InstantCommons

InstantCommonsWikimedia Commons로부터 임의의 업로드된 미디어 파일을 임의의 전 세계 미디어위키 설치에서 사용할 수 있도록 해주는 미디어위키의 기능입니다.

Rationale

2023년 11월 당시, Wikimedia Foundation이 호스팅하는 중앙 미디어 저장소인 위키미디어 커먼즈에는 1억 개가 넘는 파일이 있습니다. 이들 각 파일은 자유 컨텐츠 라이선스 또는 퍼블릭 도메인에서 제공됩니다; 공식 휘장이나 상표 사용과 관련된 것 외에는 다른 사용 제한이 없습니다. 상업적 사용을 제한하는 라이선스는 비-자유로 간주됩니다.

커먼즈에 대한 인식이 커지면서, 외부 당사자가 커먼즈에 포함된 컨텐츠를 사용하고 새로운 자료를 기여하려는 욕구도 커집니다. 현재 기술적으로 임의의 웹페이지의 맥락에서 위키미디어 서버에서 이미지를 직접 로드하는 것이 가능합니다. 그러한 핫링크는 허용되지만, 여러 가지 이유로 문제가 있습니다:

  • 이는 이미지의 라이선스 조건을 준수하지 않고, 다른 메타데이터가 안정적으로 전송되는 것을 허용하지 않습니다.
  • 미디어 파일의 작성자를 적절하게 인정하지 못하는 것 외에도, 또한 위키미디어에 대한 공인도 제공하지 않습니다.
  • 모든 페이지뷰에서 위키미디어 대역폭을 소모합니다 (이미지가 클라이언트 측이나 프록시를 통해 캐시된 경우 제외; 이 기능은 현재 기본적으로 비활성화되어 있습니다)
  • 이것은 썸네일 생성 및 캡션과 같은 유용한 이미지 작업을 용이하게 하지 않고 특히 표준 레이아웃 작업에 대해 위키 컨텍스트에서 사용하기 어렵습니다.
  • 리소스 식별자로 URL에 연결되어 있어 미러링이 복잡해집니다.
  • 이는 위키미디어 측의 모든 변경 사항이 외부 사용자에게 반드시 영향을 미치는 추적 불가능한 외부 사용 웹을 생성합니다.
  • 이 기능은 네트워크 접속이 불안정한 국가에서는 필수적인 오프라인 시청을 허용하지 않습니다.

InstantCommons는 위키미디어 서버에서 이미지와 메타데이터를 (캐시된) 로딩하는 쉬운 방법을 제공하여 이 모든 문제를 해결하고자 합니다. 캐싱 기능은 목표의 일부이지만, 미디어위키 1.27.2/1.28.1 이후로 비활성화되었습니다. InstantCommons는 미디어위키 내에서 처음 구현되어 모든 미디어위키 이미지 작업 (썸네일, 캡션, 갤러리 등)을 투명하게 수행할 수 있었습니다. 다른 위키 엔진은 아래에 설명된 API 작업을 사용하여 InstantCommons와 유사한 기능을 구현할 수 있습니다.

Basic feature set

설치 중에, 사이트 관리자는 InstantCommons를 활성화할지 여부를 선택할 수 있습니다. 이상적으로, 어쨌든, 최대한 많은 사용자가 위키미디어 커먼즈 컨텐츠를 사용할 수 있도록 기본적으로 이 기능을 활성화해야 합니다 (쓰기 가능한 업로드 디렉토리가 지정되었다는 조건으로 합니다).

만약 이 기능이 활성화되면, 위키는 위키미디어 프로젝트처럼 작동합니다. 즉, 커먼즈에 있는 이미지나 다른 미디어 파일을 참조하면, 그것은 이름을 지정함으로써 지역적으로 업로드된 파일처럼 위키 페이지에 포함할 수 있습니다. 지역적 파일 이름은 커먼즈 파일 이름보다 우선합니다.

Configuration

Default method: $wgUseInstantCommons

미디어위키 버전 1.16 이상에서 InstantCommons를 활성화하려면, LocalSettings.php에 다음 줄을 추가하면 됩니다 (자세한 내용에 대해 $wgUseInstantCommons를 참조하십시오):

$wgUseInstantCommons = true;

미디어위키 버전 1.13-1.15에서 활성화하려면, Manual:$wgForeignFileRepos#Using files from Wikimedia Commons : ForeignAPIRepo를 참조하십시오.

이 기능은 즉시 작동해야 합니다. 만약 작동하지 않으면, 웹 서버에서 PHP 함수 curl_exec()가 비활성화되었는지 확인하십시오. HTTP 프록시는 $wgHTTPProxy로 cURL에 대해 구성됩니다.

Classic InstantCommons with local thumb caching

$wgUseInstantCommons를 통해 활성화된 기본 InstantCommons는 위키미디어에서 핫링크된 썸네일 이미지를 사용합니다. 이것은 느릴 수 있고 파일 캐싱 (깨진 링크)을 방해할 수도 있습니다. 만약 지역 서버에서 썸네일을 생성하여 사용하려면, $wgUseInstantCommons를 사용하지 마십시오. 대신, 여기에 설명된 대로 다음 코드를 LocalSettings.php에 삽입하십시오: 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를 통해 커먼즈에 접속할 수 없습니다. 만약 InstantCommons가 작동을 멈췄다면 다음을 시도해 보십시오:

  • php curl 확장을 설치하십시오. (그것이 일반적으로 더 안정적이고, 적절한 인증서가 이미 설치되어 있을 가능성이 더 높습니다.) Debian/Ubuntu에서: sudo apt-get install php-curl
  • 최신 인증서 저장소가 있는지 확인하십시오. 만약 php curl 확장이 설치되어 있으면, webaware 또는 mw:Talk:InstantCommons#Stop_working의 지침을 따르십시오.

SElinux

만약 서버 OS가 SElinux를 구현하면, SELinux 설정 페이지에서 dedicated section을 살펴보고, HTTPD 스크립트와 모듈이 네트워크에 성공적으로 접근할 수 있는지 확인하십시오. 만약 SElinux가 HTTPD 스크립트와 모듈이 위키미디어 커먼즈 저장소에 연결하는 것을 막으면, InstantCommons 기능은 단순히 작동하지 않을 것입니다.

Behind a firewall

만약 위키가 실행되는 서버가 방화벽 뒤에 있으면, Instant Commons가 작동하기 위해 위키 서버에 commons.wikimedia.org 및 upload.wikimedia.org로 나가는 http/https 요청이 허용되어야 합니다. IP 주소 범위는 wikitech:IP addresses에서 찾을 수 있습니다.

Using files via InstantCommons

활성화된 InstantCommons와 함께, 위키미디어 커먼즈에서 이미지를 선택하고 (예를 들어, 이 미미지), "Use this file" 버튼 (옆에 위키 아이콘이 있는 버튼)을 클릭하고 위키에 마크업을 붙여넣을 수 있습니다. 예제에서, 다음을 붙여넣는 것은

[[File:Wikipedia-Marker-commons.svg|thumb|A picture from Wikimedia Commons embedded in this Wiki]]

썸네일을 렌더링할 것입니다 (이 페이지의 오른쪽에서 볼 수 있습니다).

이런 식으로 파일을 사용할 때는 여전히 모든 라이선스 및 기타 파일 사용 법적 요구 사항을 준수해야 암을 주목하십시오 (Commons:Reusing content outside Wikimedia을 참조하십시오).

Scalability considerations

InstantCommons 기능은 위키 사용자에게 위키미디어 서버에서 리소스를 다운로드하는 것을 허용하기 때문에, 예를 들어, 위키미디어 커먼즈에 있는 가장 큰 파일에 대한 30K개의 링크를 위키 페이지에 붙여넣고 "preview"를 클릭하는 것과 같이, 위키를 사용하는 위키나 위키미디어 커먼즈에 대한 서비스 거부 공격 가능성이 없어야 합니다. 그러므로, 모든 각 성공적인 InstantCommons 요청은 InstantCommons-활성화된 위키에서 원래 사용자 또는 IP 주소와 요청 시간과 함께 기록해야 합니다. 만약 개별 사용자가 관대한 내부 대역폭 제한 (기본적으로 최대 1GB까지 가능하지만 사용자가 구성 가능해야 함)을 무시하면, 향후 이미지는 24시간 이내에 다운로드되지 않을 것입니다. 이러한 제한은 위키 관리자에게는 존재하지 않아야 합니다 (만약 위키 관리자가 자신의 위키에 대한 서비스 거부 공격을 수행하려면, 그들은 이를 막을 필요가 없습니다; 만약 그들이 위키미디어에 대한 공격을 수행하기를 원하면, 그들은 위키미디어 측을 제외하고는 이를 막을 수 없습니다). 사용자당 대역폭 제한 외에도, 투명하게 다운로드해야 하는 파일 크기에 제한이 있을 수 있습니다. 이것은 주로 특정 크기를 넘는 파일은 페이지 뷰를 상당히 지연시키고 페이지 요청이 시간 초과될 수도 있기 때문입니다. 이들 파일을 다운로드하는 데 외부 응용 프로그램을 사용하여 페이지 요청이 계속되지 않도록 백그라운드에서 다운로드할 수 있도록 하는 것이 바람직할 수 있습니다. 마지막으로, InstantCommons 캐시에 대한 총 최대 크기가 있을 수 있습니다; 이 크기를 초과하면 더 이상 파일이 다운로드되지 않을 것입니다.

InstantCommons 기능을 사용하는 개별 위키가 위키미디어 재단의 비용을 상당히 증가시킬 가능성은 낮지만 (모든 각 파일을 한 번만 다운로드하면 되고 사용자당 대역폭 제한이 있기 때문), 그럼에도 불구하고 이 기능을 사용하는 프로젝트가 InstantCommons 설명 페이지에 "This file comes from Wikimedia Commons, a media archive hosted by the Wikimedia Foundation. If you would like to support the Wikimedia Foundation, you can donate here ..."와 같은 공지를 포함하는 것은 공정하고 타당할 것입니다.

Future potential

미래에는 변경 사항에 대한 게시자/구독 모델을 제공하는 것이 바람직할 수 있으며, 여기에는 위키 사이에 인증과 위키 구독에 사용되는 이미지 데이터베이스가 필요합니다. 이것은 역시 변경 사항이 적용되기까지 24시간 이상의 지연 단계를 사용하여 해결할 수 있는 교차 위키 파괴의 위협도 발생할 수 있습니다. 양방향 기능성은 또 다른 가능성으로, 즉, 모든 위키 설치에서 커먼즈에 자유 미디어를 직접 업로드할 수 있도록 하는 것입니다. 어쨌든, 이를 위해서는 최소한 연합 인증이 필요할 것입니다. 역시 다른 위키의 사용자에게 커먼즈 정책에 대해 알리기 위한 교차 위키 통신 기능이 필요할 수 있으며, 이는 Extension:LiquidThreads와 같은 더 큰 프로젝트의 일부가 될 수 있습니다.

See also

References