업로드 디렉토리에서 UNUSED 이미지를 모두 삭제하려면 어떻게합니까?


20

서버에서 너무 많은 공간을 차지하기 시작하면서 업로드 폴더를 정리하려고합니다.

DNUI 및 정리 이미지와 같은이 목적을 달성하기 위해 플러그인을 사용하려고 시도했지만이 플러그인은 작동하지 않거나 DNUI의 경우 (최근에 업데이트되어 작동합니다) 필자의 정확한 결과를 얻지 못합니다. 내 사이트는 Woocommerce와 헤더, 바닥 글 및 갤러리와 같은 게시물이나 페이지가 아닌 다른 장소의 이미지를 사용하는 테마를 사용하기 때문입니다. 마치 WC가 사용하는 것처럼 DNUI에 의해 "사용되지 않은"상세 이미지가 호출되는 Pretty Photo라는 자체 내장 라이트 박스 플러그인입니다.

나는 그것이 약간의 부탁이라는 것을 알고 있지만 아무도 나를 올바른 방향으로 지적 할 수 있는지 궁금합니다. 나는 개발자가 아니므로 아마도 여기에 게시해서는 안되지만 시간과 결정으로 일을 해결할 수 있습니다. 이 사이트에서 DNUI 플러그인과 동일한 결과를 얻는 스크립트를 보았지만 다른 이미지 사용을 고려할 수있는 스크립트는 없었습니다 (가능한 경우). 도움을 주시면 감사하겠습니다.


2
나는 똑같은 일을하고 싶었지만 걱정되는 것은 미사용 을 정의하는 방법 입니다. 예를 들어, 작성자가 이미지를 초안 게시물에 업로드 한 다음 다른 초안 게시물을 작성하고 컨텐츠를 붙여넣고 해당 게시물을 게시했을 수 있습니다. 이는 이미지가 게시 된 게시물이 아닌 초안 게시물에 할당됨을 의미합니다. 모든 게시물을 살펴보고 이미지 URL을 확인하여 어떤 이미지가 사용되고 있는지 확인하는 스크립트 일 수 있습니다. 잘만되면 우리는 좋은 답변을 얻을 수 있기를 바랍니다.
Christine Cooper

불행히도 "미사용"에 대한 정의가 정교할수록 적합한 솔루션을 찾을 가능성이 줄어 듭니다. 당신은 몇 개의 (수와 크기) 이미지에 대해 이야기하고 있습니까?
Rarst

안녕하세요 Rarst, 답변 주셔서 감사합니다.이 사이트는 현재 약 5 년 동안 활동 해 왔으며 테마 및 플러그인의 변경 사항이 거의있어 이미지에 따라 크게 다릅니다. 말 그대로 1000 개의 사용하지 않은 이미지가 있다고 생각합니다. 그리고 변화의 양 때문에 크기는 엄청나게 다릅니다. 나는 이미 강제 재생 축소판을 사용 하여이 수를 줄이고 시도했지만 어느 정도 효과가 있었지만이 플러그인은 종종 양으로 인해 시간이 초과되었습니다. 또한 활성화 된 상태로 내 서버의 CPU를 작동 할 수없는 수준으로 올립니다.
G-Olly

문제의 복잡성을 인식하고 미디어 라이브러리를 사용하여 이러한 이미지를 찾아 내고 삭제했습니다. 불행히도 나는 종종 사용되지 않은 것으로 사용되는 목록을 보았으며 그 반대도 마찬가지입니다.
G-Olly

1
2 센트를 넣을 수 있다면 어떤 종류의 웹 사이트에서는 문제를 경험적으로 해결할 수 있다고 생각합니다. 이러한 사이트의 경우 웹 크롤러는 사이트의 모든 페이지를 방문합니다. 서버 로그에서 방문한 모든 페이지의 URL 목록을 가져옵니다. DOMDocument를 사용하여이 페이지를 구문 분석하고 모든 <img> 요소와 해당 src를 가져옵니다. 이 접근법의 문제점은 Javascript가 href 및 src를 동적으로 생성하는 경우입니다.

답변:


4

플러그인을 사용하여 이미지 삭제 :

이 플러그인을 사용하면 데이터베이스를 검색하여 이미지가 게시물, 콘텐츠, 추천 이미지, 사용자 정의 필드 등 어디서나 삽입되는지 또는 배경으로 삽입되는지 확인할 수 있습니다.

이미지를 어디에서나 사용하지 않으면 이미지를 삭제할 수있는 옵션이 제공됩니다. 더 이상 사용하지 않는 사이트의 모든 이미지 목록이 표시되므로 안전하게 삭제할 수 있습니다.

https://wordpress.org/plugins/dnui-delete-not-used-image-wordpress/

그리고 이것은 여전히 ​​작동합니다.

https://wordpress.org/plugins/wordpress-uploaded-files-cleaner/


이미지를 수동으로 삭제 :

미디어 라이브러리를 통해 게시물과 페이지에 첨부되지 않은 이미지를 검색 할 수도 있습니다.

미디어 라이브러리로 이동하여 "연결되지 않은"을 클릭하면 사이트의 다른 부분에 표시되거나 사용되지 않은 모든 이미지가 표시됩니다.


1
게시물에 첨부되지 않은 이미지의 문제점은 다른 위치에서 사용될 수 있다는 것입니다. 예를 들어 테마의 방식에 따라 Wordpress의 기본 미디어 업 로더를 기반으로 이미지 업 로더를 사용하는 사용자 정의 필드가있는 경우 코드화 된 경우 업로드 된 이미지는 데이터베이스의 게시물에 첨부되지 않습니다. 여전히 유효한 생각입니다.
Bruno Monteiro

여기 @BrunoMonteiro를 두 번째로하겠습니다. 게시물에 첨부되지 않은 이미지를 가질 수 있습니다.
BODA82

3

크론 / 예약 된 작업 및 DB 크롤링은 친구입니다

플러그인이어야합니다. 위에서 제안한 것과 많이 다르지 않지만 필드와 같은 'post_content'를 확인하여 wp_cron 간격을 할당 할 수 있습니다 (WP 환경에 따라 식별해야 함) 이미지의 URI / URL 이로 인해 시스템 프로세스에 시간이 많이 걸리고 세금이 부과 될 가능성이 있습니다. 실제로이 프로세스는 하루에 한 주 또는 한 주에 한 번만 실행하면 더 자주 실행할 법적 / 사업상의 이유가 없다고 가정합니다.

소스의 마스터-슬레이브 DB 구성은이 프로세스가 성능 저하를 크게 줄 이도록하지만이 질문의 범위를 벗어난 것입니다.



1

wp-content/uploads업로드 된 파일이 있는지 폴더 를 스캔 한 다음 해당 파일에 대한 참조가 있는지 데이터베이스 를 스캔 한 후 마지막으로 일치시켜야합니다. 일치시킬 수없는 것은 안전하게 제거해야합니다.

데이터베이스 스캔은 까다로운 부분입니다. 대부분의 파일 참조는 표준 WordPress 기능 / API를 사용하여 액세스 할 수있는 미디어 라이브러리에 저장됩니다. 그러나 미디어 라이브러리에서 제거되었지만 게시물에서 여전히 참조되는 파일은 어떻게됩니까? 아니면 다른 플러그인이 다른 방식으로 링크 된 파일입니까?

나는 많은 수의 테스트를 수행했으며 수집 한 모든 파일 참조는 일반 텍스트 형식 (예 : 파일 경로 또는 URL과 동일한 표 셀), HTML 형식 (예 : 게시물 내용)으로 저장됩니다. 직렬화 된 데이터 또는 마지막으로 JSON 객체로. 전체 데이터베이스를 스캔하고 각 셀에서 어떤 형식이 사용되는지 추측해야합니다. 물론 일부 플러그인이 파일에 대한 참조를 유지하기 위해 사용하는 다른 이국적인 방법이있을 수 있지만 이러한 방법은 사례별로 만 처리 할 수 ​​있습니다.

결과적으로 고객의 웹 사이트 중 일부에 필요하고 Theia Upload Cleaner 라는 이름을 지정했기 때문에 모든 것을 자동으로 수행하는 플러그인을 작성했습니다 . 그것은 나를 위해 잘 작동했지만 물론 이와 같은 것을 시도하기 전에 항상 백업을 만들어야합니다.


좋은 접근 방법 ... 시간이 지남에 따라 더 많은 콘텐츠 / 플러그인 / 게시물이 추가되어 문제가 발생했는지 궁금합니다.
jj_

여기 저기에 문제가 있습니다. 예를 들어, 일부 플러그인의 경우 상당히 느려질 수있는 특정 테이블을 제외해야합니다. "로그"테이블과 같은 특정 키워드로 자동 제외를 시도하지만 모든 경우를 파악할 수는 없습니다.
liviucmg 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.