Synology File Station에서 다운로드 직링크(Direct Link) 만들기
시놀로지 | Synology

Synology File Station에서 다운로드 직링크(Direct Link) 만들기

*본 포스팅은 2020년 4월 7일에 작성되었습니다.
*본 포스팅은 Synology DS218+ (Version : DSM 6.2.2-24922 Update 4)을 기준으로 작성되었습니다.

*2020년 11월 26일 업데이트 : URL 인코더/디코더 작동 오류 개선 및 전반적인 문맥개선, 사진 추가

 

| 서론

급하신분은 본론으로~~ 뿅!

살땐 긴가민가 했지만.. 이젠 없어서는 안될 친구

필자는 Synology DS218+를 구입하여 강력한 Synology의 File Station을 활용하고 있습니다.
심지어 File Station은 아주 직관적이고, 강력합니다. 고급 사용자에겐 그렇지 않지만요.

필자는 가끔 지인들과 Minecraft를 즐깁니다. 모드 서버를 켜놓고, 음성통화(Discord)를 하면서 즐거운 시간을 보냅니다.
대부분 Minecraft 초보자들은 모드 설치에 어려움을 겪습니다.

예전에 대형 Minecraft 유튜버 양*의 컨텐츠 제작팀에 있을 때, 고정멤버들과 운영자의 모드 설치 시간을 줄이고자
Mincraft 모드 인스톨러를 만들어준 경험이 있습니다.

원격제어로 직접 설치를 해주던지, 화면 공유로 Step by Step으로 설치법을 알려줘도 되지만..
그러면 컨텐츠를 올릴 핑계가 없어집니다

인스톨러에 통짜로 모드 파일을 당연히 포함할 수도 있었지만,
인스톨러 자체의 사이즈는 작을 수록 공유가 용이하기 때문에 인스톨러 실행 후 리소스 파일들을 호스팅할 서버가 필수적입니다.
(리소스 포함시 인스톨러 사이즈가 200MB에 육박합니다.)

유료 파일 호스팅 서버를 구축해 사용할 수도 있지만, 비싼 돈 주고 산 NAS를 놀릴 순 없는 노릇입니다.

 

고급형 ipTIME 공유기가 지원하는 URL 공유 서비스

일부 고급 유무선 공유기는 간이 NAS로서 파일 공유 기능을 제공합니다만.. (ASUS의 AiCloud, ipTIME의 ipDISK 등)
공유기는 기본적으로 고성능이 아닙니다. 과거 사용했던 AiCloud 접속자가 몰리면 속도가 극악으로 떨어집니다.

티스토리 사이트에 10MB 단위로 파일을 분할 압축해 올리면 CDN 링크가 변경되지 않고, 일단 무료이기 때문에
NSIS 기반의 Minecraft 모드 인스톨러 제작 시 널리 사용되기도 했지만..

하지만 분할 압축 파일을 수십 개씩이나 올려서 소스코드 수십줄을 입력할 생각은 썩 좋은 생각은 아니죠..
(200MB를 10MB로 분할 압축하면 링크를 20번 입력해야됩니다;;)
또 불필요하게 분할압축을 해제하는 플러그인도 탑재해야하고요.

 

놀랍게도 우리의 값비싼 Synology는 일개 공유기가 지원하는 다운로드 링크(Direct링크)를 기본기능으로 지원하지 않습니다!
Synology의 File Station으로 파일 공유 링크를 만들면, 무조건 웹 페이지 접속을 통해 버튼을 눌러 다운로드를 해야 합니다.

 

하지만 우리는 답을 찾을 것입니다.. 언제나 그렇듯이요.
그리고 전 답을 찾았습니다. 아래에서 확인해보시죠.

 


| (본론) 추가 설정 없이 File Station만 가지고 직링크 만들기

Synology에 부가적인 패키지를 설치하거나 특별한 설정을 거치지 않고, File Station과 Chrome 브라우저를 사용하기만 한다면 즉시 직링크를 추출해낼 수 있습니다.

 

우선 File Station에서 평소와 같이 공유할 파일의 공유 링크를 생성해줍니다.

 

생성된 공유 URL로 접속해줍시다. 아마도 위와 같은 화면일 것입니다.

 

Chrome의 개발자 도구 단축키는 F12입니다. (macOS/Windows 공통)
F12를 눌러 개발자 도구를 열고, 상단의 Network 탭으로 진입합니다.

다운로드 버튼을 눌러 다운로드를 시도합니다.
어차피 링크만 추출할 것이므로, 만약 용량이 큰 파일이라면 즉시 다운로드를 취소해도 됩니다.

 

다운로드 버튼을 누른 뒤 좌측의 Network 탭을 확인해봅시다.
방금 다운로드 받았던 파일에 대한 정보가 표시되고 있죠?

 

추가된 항목에 마우스 우클릭을 한 뒤, Copy - Copy link address를 눌러 링크를 추출하면 됩니다.

 

이제 주소창에 복사된 URL을 붙여넣어봅시다.
우리가 알고 있던 다운로드 링크와는 다른 링크가 복사되었을 것입니다.

축하합니다! 부가적인 작업 없이 오로지 Chrome 브라우저만으로 직링크를 추출하였습니다.

 


| 매번 개발자 도구를 켜지 않아도 된다

하지만 매번 이렇게 개발자 도구를 켜서 링크를 추출해내기엔 번거로움이 있습니다.
다행히도 Synology는 링크에 일정한 규칙을 적용했습니다.
그러므로, 규칙만 파악한다면 간편히 직링크를 만들 수 있습니다.

*혹시 발생할 수 있는 안티 트래픽 발생 방지를 위해 file.mydomain.com 이라는 가상의 도메인을 사용해 설명합니다.

 

1. File Station에서 생성한 공유 URL이 아래와 같다고 가정하겠습니다.
https://file.mydomain.com/sharing/40Fnd9ECd

2. 생성한 공유 URL에 접속해서 파일을 다운받고, 개발자 도구에서 URL을 추출해보면 아래와 같습니다.
https://file.mydomain.com/fsdownload/40Fnd9ECd/%5BJGP-EFI%5DOC-0.5.7-200401-DevBuild-03292020_184959.zip

3. 그리고 공유할 파일의 이름은 [JGP-EFI]OC-0.5.7-200401-DevBuild-03292020_184959.zip 입니다.

여기서 우리는 규칙을 발견할 수 있습니다.
생성한 공유 URL에서 sharing을 fsdownload로 바꾸고, 공유 링크의 고유값 뒤에 파일명을 붙여주면 직링크가 완성됩니다.

그렇다고 해서,
https://file.mydomain.com/fsdownload/40Fnd9ECd/[JGP-EFI]OC-0.5.7-200401-DevBuild-03292020_184959.zip
처럼 입력하고 접속해보면 다운로드가 안될 것입니다.

URL에 ' [ '' ] '와 같은 특수문자를 직접 포함했기 때문입니다.
따라서 파일명에 특수문자가 포함된 경우 아래에서 인코딩을 해주면 됩니다.

파일명을 박스에 붙여넣고, "인코딩" 버튼을 눌러주면 변환이 완료됩니다.

 

참고로 변환기는 web.jgpark.kr/URLEnDecoder.html 에서도 사용이 가능합니다.

 
" [JGP-EFI]OC-0.5.7-200401-DevBuild-03292020_184959 " 라는 파일명을 인코딩하면,
" %5BJGP-EFI%5DOC-0.5.7-200401-DevBuild-03292020_184959 " 로 변환이 될 것입니다.
 

따라서 최종 다이렉트 다운로드 링크는
https://file.mydomain.com/fsdownload/40Fnd9ECd/%5BJGP-EFI%5DOC-0.5.7-200401-DevBuild-03292020_184959
가 됩니다.


| 요약

1. 공유 URL을 생성한다.
2. [도메인]/sharing/[고유코드] 에서 고유코드를 메모한다.
3. [도메인]/fsdownload/[고유코드]/파일명 순서대로 입력하면 직링크가 완성된다.
4. 만약 다운로드가 안된다면, 파일명에 특수문자가 포함되었는지 확인해보고, 특수문자가 포함되었다면 URL 인코더로 변환하여 입력해준다.

 

도움이 되셨다면 좋아요 부탁드립니다. 감사합니다.