Roi
11월 30, 2022, 9:48오전
1
안녕하세요,
phpBB에서 Discourse로 80,000개의 게시글을 가져왔습니다. 이 게시글들에는 [img]http://www.domain.tld/image.jpg[/img]와 같이 원격 웹사이트에서 링크된 이미지가 많이 포함되어 있는데, 해당 이미지는 더 이상 존재하지 않습니다.
게시글에는 해당 위치에 아무것도 표시되지 않아 혼란을 야기합니다. 일부 게시글에서는 텍스트 블록 사이에 이미지가 있었거나 있는 것이 명확하지 않아 문맥이 끊기는 문제가 발생합니다.
따라서 질문드립니다. 원본 이미지가 더 이상 사용 불가능한 경우, 해당 위치에 플레이스홀더 이미지를 표시할 수 있는 방법이 있을까요?
감사합니다,
Roi
Canapin
(Coin-coin le Canapin)
11월 30, 2022, 2:28오후
2
기본 브로커 이미지 아이콘이 표시됩니까? 게시물이 완전히 처리된 후에는 표시되어야 할 것 같습니다.
저는 직접 커스터마이징했습니다. (코드 포함):
The forum was old and users relied on external image hosting. They used a LOT of images in their forum. 40000 posts on 300000 contained at least 1 image, often way more. I even saw a post containing 150 images (!).
Because old images hosting services are now down, the vast majority (maybe… 95%?) of the forum’s images are broken ad vitam (fun fact: even if 5% of the old images remain, they still take 10 GB of disk space after being uploaded to Discourse…), leading to a lot of broken image icons …
Roi
11월 30, 2022, 3:34오후
3
아니요, 아무것도 표시되지 않습니다. 하지만 점차 근접하고 있습니다. BBCode 태그 때문에 발생하는 것 같습니다. 게시물을 편집하여 해당 태그를 제거하면 이렇게 보입니다 .
그러면 모든 [img] BBCode 태그를 제거하고 게시물을 다시 처리(bake)해야 하나요?
흥미롭네요. 저도 그걸 필요로 할 것 같습니다. 감사합니다!
Canapin
(Coin-coin le Canapin)
11월 30, 2022, 3:45오후
4
확신은 없습니다. 인라인 BBcode 태그를 제거하면 이미지 URL이 텍스트 안에 일반 텍스트로 남게 되며, 깨진 이미지 아이콘은 표시되지 않습니다.
BBcode 태그를 제거하되, 이미지 URL 앞뒤로 빈 줄을 하나씩 넣어보는 것은 어떨까요? 먼저 백업을 꼭 해두세요!
Roi
11월 30, 2022, 7:39오후
5
아, 맞을 수도 있겠네요. 정말로.
그럼 깨진 이미지 아이콘 — 또는(아마 다운로드되었을) 원격 이미지(아직 존재한다면)를 표시하려면 무엇을 변경해야 할까요?
Canapin
(Coin-coin le Canapin)
12월 1, 2022, 12:06오전
6
확실하지 않습니다.
저도 phpBB 포럼을 가져온 적이 있고, [IMG] 태그와 함께 깨진 이미지가 95%나 있었기 때문에 이 문제를 겪었을 것 같습니다. 기억이 정확하다면, ‘baking’ 과정을 거친 후 인라인으로 삽입된 깨진 이미지도 인라인 상태일 때 깨진 이미지 아이콘으로 제대로 대체되었던 것 같습니다. 하지만 제 기억이 틀렸을 수도 있습니다.
현재 바로 쓸 수 있는 해결책은 없지만, 방법을 찾을 수 있을 것이라 생각합니다.
혹시 깨진 인라인 이미지가 포함된 메시지의 링크를 가지고 계신가요? 원본 텍스트를 복사해서 붙여넣어 주실 수 있을까요?
Roi
12월 1, 2022, 7:35오전
7
네, 여기 실시간 예시가 있습니다:
Andere Grillplätze
Heißes Gelaber
Hier wird sicherlich ungesund gegrillt. Die Grillshirt Saison 2008 der Beef Buddies of Germany. (Leider war es mir spontan nicht moeglich, via Google eine Seite zu finden, muss da nochmal intensiver schauen.) /edit: Scheint wohl alles von...
Replies: 6
Author: Martin
첫 번째 게시물을 확인해 보면, 마지막 텍스트 줄과 서명 아래에 큰 빈 공간이 있는 것을 볼 수 있습니다. 소스 코드에서는 죽은 이미지(불량 이미지)를 확인할 수 있습니다. 예를 들어:
<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation" loading="lazy"></p>
데이터베이스의 “raw”(원본):
[img]http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg[/img]
데이터베이스의 “cooked”(변환된 결과):
<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation"></p>
Canapin
(Coin-coin le Canapin)
12월 1, 2022, 9:32오전
8
원격 이미지를 로컬로 다운로드 설정이 활성화되어 있나요? 깨진 이미지 아이콘은 Discourse가 원격 이미지를 다운로드하려고 시도한 후 실패할 때만 표시됩니다.
해당 설정이 비활성화되어 있으면 빈 줄만 남게 됩니다.
Roi
12월 1, 2022, 9:57오전
9
네, 활성화되어 있습니다. phpBB에서 가져오기 이전에도 항상 그랬습니다.
phpBB 가져오기 도구가 이 설정을 무시하는 것은 아닐까요? 제 이해로는 요리(cooking) 과정은 가져오기 도구 외부에서 이루어져야 하며, 해당 설정을 사용해야 합니다.
모든 게시물을 다시 요리(cooking)하면 해가 될까요?
Roi
12월 1, 2022, 2:43오후
10
다음과 같이 시도해 보았습니다:
rake posts:rebake_match["[img]"]
767 / 767 (100.0%)
767 posts done!
위에 언급한 게시글(그리고 다른 모든 게시글도)은 이전과 완전히 똑같이 보입니다…
Canapin
(Coin-coin le Canapin)
12월 1, 2022, 3:41오후
11
/var/discourse/shared/standalone/import/settings.yml 파일에 원격 이미지 다운로드를 true 또는 false로 설정할 수 있는 옵션이 있는 것 같습니다. 하지만 이 옵션이 설정되어 있든 아니든, 가져오기(import) 후 게시글은 반드시 재처리(rebake)됩니다.
이제 빈 줄에 예상대로 깨진 이미지 아이콘이 표시되는 것을 확인할 수 있습니다:
https://forum.gdngs.de/t/grill-shirts-von-3dsupply-de/5515
많은 수의 게시글을 다시 재처리하는 대신, 게시글 관리자 옵션에서 특정 게시글의 HTML을 다시 생성(rebuild)하는 것이 좋은 테스트 방법입니다. 이 작업은 재처리(rebake)를 트리거하기 때문입니다:
그리고 큐에 작업을 추가하여 UpdateHotlinkedRaw 작업을 트리거하세요:
제 테스트 인스턴스에서 BBcode 내부의 깨진 이미지 중 하나를 사용하여 테스트해 보았습니다. 원격 이미지 로컬 다운로드 가 비활성화되어 있을 때, 빈 줄은 그대로 유지되었습니다. 활성화되어 있을 때는 깨진 이미지 아이콘이 대신 표시되었습니다.
Roi
12월 1, 2022, 4:53오후
12
Coin-coin le Canapin:
/var/discourse/shared/standalone/import/settings.yml 파일에 원격 이미지 다운로드를 true 또는 false로 설정할 수 있는 옵션이 있다고 생각합니다. 하지만 이 옵션이 설정되어 있든 아니든, 가져오기(import) 이후 게시글은 ‘bake’(최종 처리)됩니다.
빈 줄이 이제 예상대로 깨진 이미지 아이콘으로 표시되는 것을 확인했습니다:
https://forum.gdngs.de/t/grill-shirts-von-3dsupply-de/5515
아, 맞습니다. 말씀이 맞네요. rebake 명령어 실행 후 브라우저 캐시 문제였던 것 같습니다. 직접 확인해 주셔서 감사합니다!
그러면 어쨌든 phpBB 가져오기 관련 문제였던 것 같습니다. phpBB에서 모든 것을 가져온 이후 원격 이미지 관련 설정을 변경하지 않았다고 단언할 수 있을 정도인데요…
아, 좋습니다. 찾았고 클릭했습니다.
Sidekiq 어디서도 UpdateHotlinkedRaw 작업을 찾을 수 없습니다… 이 문제를 해결하는 데 도움을 주실 수 있을까요? 분명 제 실수(PEBCAK)인 것 같습니다.
이는 제가 phpBB에서 모든 것을 가져온 이후 에 download remote images to local을 활성화했다는 방향으로 가리킵니다. 음… 테스트용 설치 환경을 가지고 있었고 거기서 많은 것을 테스트해 봤기 때문에, 이미 가져오기 전에 활성화되어 있었다고 여전히 확신합니다.
Canapin
(Coin-coin le Canapin)
12월 1, 2022, 5:34오후
13
참고: 해당 작업은 몇 분 후에 자동으로 트리거되므로, Sidekiq를 확인하는 것은 더 빠르게 상태를 점검하는 방법일 뿐입니다.
게시물 HTML을 다시 빌드한 후 몇 초 안에 Sidekiq의 Scheduled 탭에 UpdateHotlinkedRaw 작업이 표시되어야 합니다.
해당 작업은 Discourse 포럼 설정에서 원격 이미지 로컬 다운로드 설정이 활성화되어 있고, 게시물이 이미지 하나 이상을 포함하고 있을 때만 표시됩니다.
이 방법으로 해결되지 않는다면, 현재로서는 다른 아이디어가 없습니다…!
Roi
12월 1, 2022, 5:42오후
14
Coin-coin le Canapin:
게시물 HTML을 다시 빌드한 직후 몇 초 내에 UpdateHotlinkedRaw 작업이 Sidekiq의 예약(Scheduled) 탭에 표시되어야 합니다.
이 작업은 Discourse 포럼 설정에서 원격 이미지를 로컬로 다운로드 설정이 활성화되어 있고, 게시물에 이미지가 포함된 경우에만 표시되어야 합니다.
이렇게 해도 해결되지 않는다면, 지금은 다른 아이디어가 없습니다…!
감사합니다, 이제 명확해졌습니다. 원격 이미지가 없는 게시물을 하나 다시 베이킹(재처리)했는데 아무 일도 일어나지 않았습니다.
그리고 도와주셔서 감사합니다. 덕분에 여기 문제를 정리할 수 있었습니다. 이제 플레이스홀더 이미지를 볼 수 있습니다. 그리고 아마도 여기 링크하신 CSS 트릭으로 플레이스홀더 이미지를 교체할 것 같습니다.