Closed botserv closed 4 years ago
정말 업데이트할 때마다 뭘 그렇게 바꿔대는 건지... ㅠ
참고를 위해 링크 걸어둡니다. #1184 #1180 #680
78e575f 적용후 테스트 부탁드립니다.
78e575f 적용후 테스트 부탁드립니다.
기존에는 파일명.dat에서 해당 패치를 적용후
index.php 로 다운로드 받아집니다.
175.223. - - [12/Mar/2020:14:59:38 +0900] "GET /index.php?act=procFileOutput&file_srl=19911990&file_key=5e69cfcaXKEs3U3ZzBl-de5vlbqZpiCMu0NcHSm3fJIMx_3K HTTP/2.0" 200 49152 "-" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36;appname"
175.223 - - [12/Mar/2020:15:12:03 +0900] "GET /index.php?act=procFileOutput&file_srl=19910898&file_key=5e69d2aflSfBKa8850FnTFU3efop3IppFA1c_c5kmcpmH22w HTTP/1.1" 200 3210729 "-" "AndroidDownloadManager/10 (Linux; U; Android 10; SM-G975N Build/QP1A.190711.020)"
175.223 - - [12/Mar/2020:15:12:00 +0900] "GET /index.php?act=procFileOutput&file_srl=19910898&file_key=5e69d2aflSfBKa8850FnTFU3efop3IppFA1c_c5kmcpmH22w HTTP/2.0" 200 98304 "-" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36;appname"
@botserv 예전에 드렸던 다운로드 테스트 URL 3개 중 제대로 다운로드되는 것이 하나도 없다는 말씀이죠? 그러면 답이 없습니다. 현존하는 파일명 인코딩 방식이 3가지인데 전부 안 된다는 뜻이니... (테스트 URL은 라이믹스 패치 여부와 관계없습니다.)
테스트 URL 3개 중 제대로 다운로드되는 것
아래 스크린샷이 다운로드 받은 이미지들입니다.
php / .bin 파일로 받아졌어요 제대로 다운받았는지는 원래 확장명이 뭔지 몰라서 모르겠습니다.
.jpg 로 다운로드 받아진 파일은 없네요..
현재 문제가 라이믹스 쪽 문제가 아니라 그럼 안드로이드 쪽 문제라는 말씀이신거죠?
파일은 정상인데 확장명만 정상적으로 안되는 문제니 확장명만 제대로 부여해주면 해결이; 안되나요?
패치 해주시기전에 test.dat 으로 바꼈었는데 패치후는 index.php 확장명이고 (둘다 모두 다운로드 사이즈가 정상이라 확장명만 바꿔주면 제대로 된 파일이었습니다.)
패치전에 test.dat을 test.jpg 등으로 뒤에 확장명 바꾸는 방법이 없을까요?
@botserv 테스트 URL 3개 모두 원본 파일명은 "곰탱이.jpg"입니다. 확장자만 따로 지정하는 방법은 없습니다. php로 다운받아진 경우는 URL에 .php가 들어 있으니까 안드로이드가 지레짐작한 것이고, bin은 어디에서도 지정한 적이 없는데 안드로이드가 멋대로 갖다 붙인 것입니다. 시키는 대로만 해주면 되는데 이제는 이 녀석이 창의력까지 발휘하네요.;;;
조금 더 기다려 주시면 더 과격한 패치를 갖고 오겠습니다. 좋은 말로 해서는 안드로이드가 못 알아들으니 오함마로 좀 두들겨 줘야겠어요.
@botserv 테스트 URL 3개 모두 원본 파일명은 "곰탱이.jpg"입니다. 확장자만 따로 지정하는 방법은 없습니다. php로 다운받아진 경우는 URL에 .php가 들어 있으니까 안드로이드가 지레짐작한 것이고, bin은 어디에서도 지정한 적이 없는데 안드로이드가 멋대로 갖다 붙인 것입니다. 시키는 대로만 해주면 되는데 이제는 이 녀석이 창의력까지 발휘하네요.;;;
조금 더 기다려 주시면 더 과격한 패치를 갖고 오겠습니다. 좋은 말로 해서는 안드로이드가 못 알아들으니 오함마로 좀 두들겨 줘야겠어요.
아이고 그렇군요 항상 감사합니다 ㅠ_ㅠ
@kijin 해당 문제가 안드로이드 문제가 아니라는 것을 확인하였습니다.
저희 앱으로 앱뷰 -> https://www.virtualdj.com/download/index.html 란사이트로 접속해서
파일명.msi 확장명의 파일 다운로드시 정상적으로 .msi 로 받아지더군요
위와 같은 내용으로 볼 때 안드로이드 문제가아니라 웹상의 문제인 것 같아요! 한번 다시 체크 부탁드릴께요
@botserv 라이믹스 쪽의 테스트 결과는 #1256 적용 후 파일 모듈의 짧은주소 기능을 켠 상태에서 확인하신 것인가요? 되는 확장자와 안 되는 확장자가 따로 있던가요?
@botserv
추가로 몇 가지 테스트 링크를 남깁니다.
대중적인 모듈 xepushapp을 이용해서 해당 이미지를 저희 사이트 자료실에 업로드 한다음 확인 해보면 실제로 다운로드가 확장자명이 없는 다른 이름으로 이루어지고 있습니다.. 이 문제는 특정앱환경만을 보아야 할 것이 아닌 것 같아요.
@botserv 라이믹스 쪽의 테스트 결과는 #1256 적용 후 파일 모듈의 짧은주소 기능을 켠 상태에서 확인하신 것인가요? 되는 확장자와 안 되는 확장자가 따로 있던가요?
네 모든 패치 적용해서 일반 삼성인터넷에서는 적용시 파일 다운로드시 확장명을 묻는 창이 뜨면서 다운로드 되는 것 까지 적용했습니다. 현재 되는 확장명은
.pkg 만 확인했습니다.
jpg 이미지 링크 클릭시 다운로드가 아니라 이미지 페이지로 넘어가네요.
mp3 파일 링크 클릭시 크롬 브라우저와 동일한 player가 뜨면서 ... 을 눌러서 다운로드를 클릭하면 정상적으로 .mp3 로 다운로드 됩니다.
저희서버에서도 로그 찍어봤는데요 221.147 - - [24/Mar/2020:00:11:10 +0900] "GET /test/download.msi HTTP/1.1" 200 1369600 "-" "AndroidDownloadManager/10 (Linux; U; Android 10; SM-G975N Build/QP1A.190711.020)"
221.147 - - [24/Mar/2020:00:11:09 +0900] "GET /test/download.msi HTTP/2.0" 200 262144 "-" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36;appname"
221.147 - - [24/Mar/2020:00:10:58 +0900] "GET /test/citylights.mp3 HTTP/1.1" 200 3028948 "-" "AndroidDownloadManager/10 (Linux; U; Android 10; SM-G975N Build/QP1A.190711.020)"
이렇게 찍히네요:)
https://www.virtualdj.com/download/index.html 사이트의 .msi 확장명 / pkg 확장명은
정상적으로 다운로드 됩니다:) 해당 사이트가 2확장면만 다운로드 서비스가 제공되서 저 사이트의 다른 확장명은 확인이 안되네요.
근데 신기하게 nginx 사이트는 msi 확장명을 bin 으로 받아버리네요.. 라이믹스를 안거치고 사이트 다이렉트 .mp3은 또 정상적으로 mp3로 받아지는데요..
@botserv 한 가지 의심되는 것이 있습니다. 아래의 링크들을 시도해 보시기 바랍니다.
해당 링크들 .msi / .pkg 로 잘받아집니다:)
@botserv 운영하시는 사이트의 파일 모듈 → 다운로드 설정에서 오디오, 동영상 파일을 현재 창에서 다운로드하도록 설정해 보세요.
해당옵션을 사용하면 플레이어가 실행되고 (웹뷰가 아닌, 삼성인터넷 브라우저도 동일)
플레이어에서 ... 을 눌러 다운로드 버튼을 누르면 index.php로 받아집니다
한가지 신기한점은 정상적으로 msi / pkg 확장명이 되는 사이트는 다운로드 경로가 https://www.virtualdj.com/download/pc https://www.virtualdj.com/download/mac
이런식으로 되어있는데 리다이렉트 처리한게 아닐까요?
@botserv 다운로드시 짧은주소 사용 옵션은 켜져 있는 상태죠?
파일명을 인코딩하는 Content-Disposition 헤더가 아니라 그 위에서 출력하는 Content-Type 헤더에 어떤 식으로든 영향을 받는 것 같기는 한데.........
네, 링크하신 사이트는 리다이렉트 처리가 되어 있습니다. 그건 라이믹스도 다를 바 없지요.
라이믹스에서 #1256 패치를 적용했고,
예전에 기진곰님 서버 세팅당시 /etc/nginx/snippets/xe-rewrite.conf
rewrite ^/files/download/([0-9]+)/([a-zA-Z0-9_-]+)/(.+)$ /index.php?act=procFileOutput&file_srl=$1&file_key=$2&filename=$3 last;
rewrite ^/sitemap.xml$ /index.php?mid=sitemap_xml last;
정상적으로 적용했는지 확인방법이 있을까요?
깃허브에서 #
로 시작하는 줄을 입력하면 제목으로 인식합니다. \#
라고 써주셔야 합니다.
아 file 관련 패치가 안됐네요..:) common 쪽만 업데이트 된줄알았는데
file 모듈 부분도 적용후 다시 테스트할꼐요!
네~ 아까 업데이트된 1.9.9.6으로 깔끔하게 업데이트하신 후에 테스트해 주세요! 단, member 모듈 업데이트에 긴 시간이 걸릴 수 있으니 주의하시고요.
저희도 람보님이 직접 운영하시는 사이트의 푸시앱을 사용해서 계속 테스트 중입니다.
일단 file 모듈 업뎃해서 테스트 해봤는데요:) 다운로드 경로 ./files/download/19926274/5e78dde8YLtW4Mz1WZ3SAbgTu22AUEaQB-rn5eVP4JZ1zI1e/Sidney%20Samson%2C%20Tujamo%20-%20Riverside%20%28Cheyenne%20Giles%20Festival%20Flip%29.mp3
이렇게 뜬거보니까 짧은글 패치는 정상적으로 적용시킨 것 같은데 다운로드시 현재 창 사용 오디오/비디오 체크시에 플레이어창으로 넘어가면서 ... 눌러서 다운로드를 누르면 어쩔 땐 정상적으로 name.mp3 로 받아지고 어쩔땐 index.php 로 받아질떄가 있네요..
다운로드시 현재 창 옵션을 키지 않으면
정상적인 파일이름.bin 으로 받아집니다:)
그것 참 일관성없이 오락가락하네요;;;
방금 커밋한 7c9b356 이것까지 적용 후 현재창 옵션을 켰을 때 vs. 껐을 때의 증상을 비교 부탁드립니다. 특정한 헤더의 조합에서 버그가 발생하는 듯 한데, 저희가 테스트한 앱에서도 증상이 오락가락하다 보니 여러 가지를 계속 테스트해 보는 수밖에 없겠네요.
다른 사이트 https://bgmstore.net/ 도 혹시 몰라서 들어가서 다운로드 해봤는데 정상적으로 잘 받아지네요.
@botserv
이 조합으로 나온다는 말씀이시죠? 현재창에 열도록 설정하지 않은 상태이고요?
동일한 링크로 계속 테스트하시면 캐시 때문에 변경사항을 파악하기 어려울 수도 있습니다.
@kijin 마지막 커밋 적용후
옵션 꺼진 상태에서 -> 정상적으로 file.mp3 확장명으로 받아지네요
옵션 키면 재생플레이어 넘기고 다운로드 실행해도 index.php로 되어집니다.
드디어 잘되요-_ㅠ
@botserv 그럼 마지막 커밋 적용된 상태에서 현재창 옵션은 꺼야 하는 것이군요.
아이고 골때리네요. 저희 테스트 어플은 아직도 안 되는데, 미묘한 버전차가 있나 봅니다. 그래도 botserv님 어플에서는 된다니 다행입니다. ^^
@botserv 그럼 마지막 커밋 적용된 상태에서 현재창 옵션은 꺼야 하는 것이군요.
아이고 골때리네요. 저희 테스트 어플은 아직도 안 되는데, 미묘한 버전차가 있나 봅니다. 그래도 botserv님 어플에서는 된다니 다행입니다. ^^
근데 또 msi 확장명 파일은 bin 으로 받는 문제가 있어요
저희 앱 뿐만아니라, 요새 앱 자동으로 만들어주는 앱들에서도 테스트해보겠습니다.
https://www.swing2app.co.kr/ 스윙투앱으로 제작된 앱에서도 정상적으로 잘 다운로드됩니다.
다만 이앱에서도 msi 확장명은 또 안받아지네요. pkg 확장명은 또 잘받아지는데요..:)
msi, pkg 등의 파일은 develop 브랜치의 나머지 패치 사항(4f9fab5)도 적용하신 후에 다시 테스트해 보시기 바랍니다. 코어에서 인식하지 못하는 확장자는 다르게 처리되거든요.
4f9fab5 적용해봤는데 옵션 끄나 켜나 둘다 .bin 으로 받아지네요..
앱 두개다 모두 그런현상이있네요. pkg는 정상적으로 잘받아지구요..
안드로이드에서 msi를 다운받을 일은 거의 없다는 점에 위안을 삼아야 할까요? ㅠ
아무튼 mp3라도 제대로 다운로드되는 방법을 찾았으니 다행입니다.
나중에 참고할 수 있도록 문제점을 정리하자면, 지금까지는 Content-Disposition 헤더를 통해 인코딩되는 파일명이 문제였으나, 안드로이드 10에서는 파일명을 어떻게 인코딩하더라도 문제를 해결할 수 없다는 것을 발견했습니다. 그런데 새로 제보해 주신 정보를 바탕으로 유추해 보니, Content-Type 헤더에 application/octet-stream이 들어가는 경우 무조건 .bin으로 다운로드되는 것 같았습니다. 4번째 5번째 테스트 링크를 통해 정말 그렇다는 것을 확인했습니다. 즉, 안드로이드 10에서는 Content-Type 헤더에 따라 확장자가 강제로 변경되거나 파일명이 증발할 수도 있다는 것입니다.
XE는 예전부터 파일 다운로드시 항상 Content-Type: application/octet-stream을 사용해 왔고, 라이믹스도 현재창에 열도록 설정한 경우 외에는 동일합니다. 모든 브라우저에서 강제 다운로드를 시키는 데 가장 확실한 방법의 일환이거든요. (현재창에 열 때는 확장자에 맞는 헤더를 출력합니다. 이건 라이믹스가 새로 만든 기능이어서요.) 그래서 현재창 옵션을 켰다 껐다 해 보라고 말씀드렸고, 현재창에 열지 않을 때도 항상 확장자에 맞는 헤더를 출력하도록 패치했습니다. 단, common/framework/mime.php에 등록되어 있지 않은 확장자는 여전히 기본값인 application/octet-stream으로 나옵니다.
여전히 미스테리인 것은, virtualdj.com 사이트에서는 .pkg 파일을 application/octet-stream으로 처리하고 있음에도 불구하고 잘 다운로드된다는 점입니다. Content-Type 외에도 안드로이드 10에서 버그를 유발하는 헤더의 미묘한 차이가 또 있는 모양입니다. ㅡ.ㅡ;;
.zip 파일도 테스트해봤는데 정상적으로 잘받아집니다. 고생하셨습니다:)
@kijin 저희앱같은경우에는 파일이름 뒤에. 이 붙어버리면 Crash (java.lang.IllegalArgumentException: Invalid file URI: file:///storage/emulated/0/Download/Ace - %EB%B3%B5%EA%B3%A0 Mix %28III%29 Summer Ver..mp3) ex) 테스트..mp3 이런식으로 확장명 .mp3 앞에 . 으로 끝나면 문제가 발생하는 듯합니다.
스윙투앱서비스로 만든앱의 경우에도 다운로드 경로가 잘못되어서 그런지 다운로드가 실행이 안되네요. 아마 웹뷰에서 맨 뒤에 .이 붙어버리면 다운로드 경로를 제대로 못찾는 것 같습니다.
[01/Apr/2020:02:24:58 +0900] "GET /files/download/19936574/5e837ceaLTNqZz7kdtyApRa-O5v3eZ2EM_7wDzHhr55c6W_6/nametest..mp3 HTTP/2.0" 200 228832 "https://Electronic_v2/19926645" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36/SWING2APP"
다음앱에서도 다운로드 진행시 문제가 발생하네요. 정상적인 apple.mp3 는 다운로드를 실행하는데
apple..mp3는 무슨 앱을 실행시킬 건지 물어보네요..
기본앱인 삼성인터넷에서도
testname..mp3 이름인경우
자동으로 testname.-1.mp3 (testname..mp3 파일이 있어서 -1이 붙은게 아니더군요..) testname.-1.mp3 파일이 있을경우엔 testname.-2.mp3 이런식으로 받아지네요
@botserv 파일명에 점이 2개 들어간 경우 자동으로 지워주도록 패치했습니다.
혹시 아직도 bin으로 다운받아지는 확장자가 있다면 전에 알려주신 테스트 페이지에 링크 하나 걸어놓아 주시면 감사하겠습니다.
@kijin 패치 감사합니다!
현재 까지 bin으로 인한 문제가 보고 된 적이 없습니다!
@botserv 그러면 이 문제는 해결된 것으로 알겠습니다. 언제 또 나올지 모르지만...
175.223 - - [07/Mar/2020:17:10:02 +0900] "GET /index.php?act=procFileOutput&file_srl=19904080&file_key=5e6356caKEObzNCPZ5lh_0j3_CIrK_j1bEcJzmRCUapvPTRm HTTP/1.1" 200 10377704 "-" "AndroidDownloadManager/10 (Linux; U; Android 10; SM-G975N Build/QP1A.190711.020)"
175.223 - - [07/Mar/2020:17:22:09 +0900] "GET /index.php?act=procFileOutput&file_srl=19904085&file_key=5e6359b0R1jLpK3YyhQjtWsM6SgGG2b3fq5U7FdQp5CIgM2Y HTTP/2.0" 200 171392 "-" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36;APPNAME"
175.223 - - [07/Mar/2020:17:22:09 +0900] "GET /?module=file&act=procFileDownload&file_srl=19904085&sid=1eb3130233400a1017b27f6fd4c3b1c7&module_srl=30628 HTTP/2.0" 302 0 "-" "Mozilla/5.0 (Linux; Android 10; SM-G975N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.92 Mobile Safari/537.36;APPNAME"
안드로이드10 웹뷰(앱)에서 기존에 발생했던 문제들이 또 생기네요..
삼성은 왜 항상 안드로이드 업뎃할 때 마다 문제가 생기는지.
파일명.bin 파일로 받아지는 문제가 생겼네요.. 그전에는 *파일 사이즈 정상, 확장명을 변경하면 정상적인 파일입니다.
index.php로 받아지거나. 파일명.dat으로 받아지더니-_ㅠ
(정상적인 삼성 인터넷 브라우저로 다운로드시 로그)
175.223 - - [07/Mar/2020:17:23:50 +0900] "GET /index.php?act=procFileOutput&file_srl=19902285&file_key=5e635a10Em5nxh7DS1jP0Ne7dXGfWJ7UT0hvBmAbQGAt-1v9 HTTP/2.0" 200 6058362 "https://www.siteurl/mid/19901494" "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-G975N/KSU3BTA4) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.2 Chrome/71.0.3578.99 Mobile Safari/537.36"
라이믹스 설정은 SSL 전용 세션만 사용으로 되어있고 나머지는 사용안함으로 설정되어있습니다.