안녕하세요 - 태그가 많이 포함된 CSV 파일을 업로드하려고 시도하고 있는데, 매번 "죄송합니다. 파일을 업로드하는 중 오류가 발생했습니다. 다시 시도해 주세요."라는 오류 메시지가 표시됩니다.
관리자 패널의 로그에는 다음과 같이 나와 있습니다.
Message (8 copies reported)
Failed to process hijacked response correctly : Validation failed: Name is invalid
Backtrace
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:278:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/persistence.rb:55:in `create!'
가짜 태그를 만들어 보았지만, 즉 CSV 파일에 항목을 하나만 넣은 경우(예: 'java’라는 단어)에도 동일한 오류 메시지가 나타납니다.
참고로, 공식 설치 가이드를 사용하여 DigitalOcean에 Discourse를 설치했으며, 다른 모든 부분은 정상적으로 작동하고 있습니다.
감사합니다!
월요일에 @tshenry 님과 재현해 볼 수 있을까요?
감사합니다 @codinghorror - 혹시 발견하신 점이 있다면 알려주세요. 도움이 된다면, 저는 4GB RAM과 80GB SSD가 장착된 Droplet에서 2.5.0.beta7 ( 14dc6f350e ) 버전을 실행 중입니다.
이 외에도 aksimet, formatting-toolbar, discourse-voting 플러그인을 설치해 두었습니다.
tshenry
(Taylor)
6월 15, 2020, 4:37오후
4
방금 try.discourse.org에서 이 문제를 테스트해 보았습니다. 기본 텍스트 편집기를 사용하여 java라는 단어만 포함된 tags.csv라는 CSV 파일을 생성한 후, 대량 태그 업로드 도구를 사용해 새 태그를 문제없이 추가할 수 있었습니다.
try.discourse.org 사이트에는 akismet과 discourse-voting이 설치되어 있으며, formatting-toolbar 플러그인이 여러분이 보고 계신 오류를 유발할 수 있는 방식으로 충돌할 가능성은 매우 낮다고 생각합니다.
다른 상황(게시물, 테마 등)에서는 파일을 문제없이 업로드할 수 있나요?
Hi @tshenry - 네, 질문하신 것이 맞다면 제가 작성한 게시물에 이미지를 업로드할 수 있습니다.
드롭렛을 삭제하고 Discourse를 다시 설치했으며, 현재는 아래 플러그인만 사용 중입니다.
하지만 여전히 업로드가 실패합니다. 권한 문제 때문일까요? 저는 사이트 관리자이므로 이 작업을 수행할 수 있는 모든 권한이 있다고 생각합니다.
이번에는 2.5.0.beta7 (70e50a2255 ) 버전을 사용하고 있습니다.
추가로 시도해볼 일이 있으면 알려주세요. 감사합니다!
아 - @codinghorror @tshenry , 흥미로운 걸 하나 발견했어요.
태그 파일 이름을 tags-1.csv로 지정하면 업로드 오류가 발생합니다. 그런데 파일 이름을 tags.csv로 바꾸면 태그 업로드가 정상적으로 완료됩니다
이 명명 규칙이 Discourse에서 필요한 건가요(관련 문서를 놓친 건 아닌지), 아니면 버그일까요?
tshenry
(Taylor)
6월 15, 2020, 4:56오후
7
음, 파일을 tags-1.csv로 이름을 변경해 보았지만 여전히 오류를 재현하지 못했습니다. 이름을 다시 tags-1.csv로 변경해서 업로드를 시도해 보면 다시 실패할까요? 원래 파일명에 다른 문제가 있었는지, 아니면 tags.csv로 변경한 것이 우연히 문제를 해결한 것인지 궁금합니다.
아니요, 여전히 제 환경에서는 작동하지 않습니다. 맥에서 제가 하는 작업은 다음과 같습니다.
$ vi tags-1.csv
그 다음
i를 눌러 편집 모드 진입
java 입력
esc를 눌러 편집 모드 종료
:wq 입력 후 Enter를 눌러 저장 및 종료.
그것뿐입니다. 이것도 실패합니다. 처음에는 엑셀에서 CSV로 내보낸 것과 관련이 있다고 생각했지만, 커맨드라인으로 편집해도 문제가 발생합니다.
지금은 tags.csv를 계속 사용하겠습니다. 하지만 이 문제가 중요하다고 생각하시거나 테스트를 원하시면 기꺼이 진행하겠습니다. 새로 설치한 두 개의 다른 드롭렛에서도 동일한 문제가 발생하여 걱정되었습니다.
감사합니다 @tshenry .
또 다른 문제를 발견했습니다(다시 말하지만, 이것이 제 환경과 관련이 있는지 확실하지 않습니다).
제 태그는 프로그래밍 언어 목록입니다. 목록에 c++과 c#이 있었는데, tags.csv에서 이들을 제거한 후 벌크 업로드가 성공적으로 통과했습니다. 태그가 특수 문자로 끝나기 때문에 그런 건지 궁금합니다. 또 저 때문일 수도 있겠네요
거의 확실하게 그 문제가 원인일 것입니다. 잘못된 태그에 대해 여기서 더 나은 오류 메시지를 반환할 수 있을까요?
tshenry
(Taylor)
6월 15, 2020, 5:33오후
11
네! 그 부분이 문제인 것 같습니다. 마지막 게시글을 기준으로 파일에서 java 단어만 다루고 있다고 생각했거든요. cpp, c-sharp 같은 다른 값을 사용해야 합니다.
네, 그렇게 하는 것이 이상적이라고 생각합니다. 현재 오류 메시지는 사용자에게 큰 단서를 제공하지 않습니다:
죄송합니다. 파일 업로드 중 오류가 발생했습니다. 다시 시도해 주세요.
알지 못했던 흥미로운 점인데, 일반 주제 생성/편집 컨텍스트에서 태그를 만들려고 하면 기호가 조용히 제거되는 것 같습니다. 즉, C++을 입력하면 태그로 C가 제안됩니다.
복사본을 편집하려고 했었습니다(잘못된 태그의 가능성을 나타내기 위해)만, 이 복사본은 모든 업로드에 적용되므로 항상 정확하지 않을 것 같아서 그러지 않았습니다.
개인적으로 가장 빠른 방법은 관리자 설정의 태그 섹션에 태그 이름에 대한 제한 사항을 설명하는 몇 문장을 추가하는 것입니다.
그리고, 아마도 디스코urse 태그 가이드(Admin guide to tags in Discourse )에 경고 문구를 추가하는 것도 좋을 것 같습니다.
tshenry
(Taylor)
6월 15, 2020, 5:44오후
14
네, 확실히 그런 것 같습니다. 태그 업로드 코드에서 일반 오류가 발생하는 부분을 찾았으니, 이 경우에 대해 더 구체적인 오류를 만들도록 PR을 제출해 보겠습니다.