image_sizes가 비어 있으면 미디어 검토가 건너뛸 수 있습니다

Skip review media groups 설정에 관한 버그입니다.
모바일에서 이미지를 게시할 때, 이미지 업로드는 성공하며 게시 본문에는 이미지 참조(예: ...)가 올바르게 포함됩니다.

그러나 이후의 POST /posts 요청에는 다음이 포함됩니다:

“image_sizes”: {}

서버 측 미디어 검토(check)는 manager.args[:image_sizes].present?일 때만 실행됩니다:

if manager.args\[:image_sizes\].present? &&
       !user.in_any_groups?(SiteSetting.skip_review_media_groups_map)
    return :contains_media
  end

빈 해시(empty hash)는 Ruby에서 present?가 아니므로, 해당 게시물은 미디어를 포함하는 것으로 식별되지 않고 검토로 보내지지 않습니다. 따라서 skip_review_media_groups 체크는 결코 도달하지 않습니다.

HAR 증거:

  • POST /uploads가 성공했습니다 (2xx).
  • POST /posts 페이로드에는 raw에 이미지 마크다운이 포함되어 있습니다.
  • 동일한 페이로드에는 “image_sizes”: {}가 포함되어 있습니다.
  • 해당 게시물은 검토 대기열에 추가되지 않았습니다.

웹 컴포저는 에디터 미리보기 DOM의 이미지로부터 image_sizes를 구성합니다. 이로 인해 미디어 검토가 클라이언트가 제공하는 미리보기 메타데이터에 의존하게 되며, 이는 모바일 클라이언트에서 또는 미리보기 이미지가 로드되지 않은 경우 누락될 수 있습니다.

예상 동작: 업로드/임베드된 이미지를 포함하는 게시물은 클라이언트가 이미지 크기를 전송했는지 여부와 관계없이 미디어 검토를 받아야 합니다.

제안된 수정 사항:

  1. 게시물 콘텐츠 기반의 서버 측 미디어 감지 — 클라이언트가 공급하는 image_sizes 필드에만 의존하는 대신, 서버에서 raw 또는 cooked 게시물 콘텐츠(또는 업로드 참조)를 검사하여 게시물이 미디어를 포함하는지 결정합니다.

  2. 업로드된 모든 미디어 파일 검토(1번보다 우수) — 게시물 내에 나타나는 미디어 파일만 검토하는 대신, 사용자가 업로드한 모든 미디어 파일을 직접 검토합니다. 이를 통해 게시물 수준의 메타데이터에 대한 의존성을 완전히 제거하고, 사용된 클라이언트나 엔드포인트와 관계없이 업로드된 미디어가 검토 대기열을 우회하지 않도록 보장합니다.

3개의 좋아요

이것으로 해결될 것 같습니다 :hugs:

리포트해 주셔서 감사합니다.

2번은 더 복잡해 보입니다.

3개의 좋아요

이 주제는 14시간 후 자동으로 닫혔습니다. 더 이상 답변을 남길 수 없습니다.