Zenodo: ํ•™์ƒ ํ”„๋กœ์ ํŠธ: HTTP๋ฅผ ํ†ตํ•œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”

์— ๋งŒ๋“  2016๋…„ 02์›” 12์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: zenodo/zenodo

์‚ฌ์šฉ ์‚ฌ๋ก€

  • A) ์—ฐ๊ตฌ์›์ด ์ž์‹ ์˜ 260GB ์—ฐ๊ตฌ ๋ฐ์ดํ„ฐ์„ธํŠธ๋ฅผ Zenodo์— ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์›์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ณ€ํ˜•: ์—ฐ๊ตฌ์›๋“ค์€ Python์„ ์•ฝ๊ฐ„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ API๋ฅผ ํ†ตํ•ด Zenodo์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • B) ์—ฐ๊ตฌ์›์ด Zenodo์—์„œ 260GB ์—ฐ๊ตฌ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ(์ตœ์†Œ 100MB,

๋ชฉํ‘œ
Zenodo์™€์˜ ๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ ๋ฐ/๋˜๋Š” ๋‹ค์šด๋กœ๋“œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์—…๋กœ๋“œ
๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ Zenodo๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค. 1) JavaScript(๋ธŒ๋ผ์šฐ์ €) ๋ฐ/๋˜๋Š” 2) Python(API) ์‚ฌ์šฉ.

_๊ณ ๊ฐ ์ž…์žฅ์—์„œ_
JavaScript: ์ฒญํฌ ํŒŒ์ผ(์˜ˆ: PLUpload๋ฅผ ์ง€์›ํ•˜๋Š” ๋งŽ์€ ๊ธฐ์กด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ), ๋ณ‘๋ ฌ๋กœ ์ฒญํฌ ์—…๋กœ๋“œ(์˜ˆ: javascript ์›น ์ž‘์—…์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ ๋ณธ ์ ์ด ์—†์Œ).

Python: JavaScript์™€ ๋™์ผ - ์ฒญํฌ/๋ณ‘๋ ฌํ™” + HTTP ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ TCP ๊ณ„์ธต๋„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

๊ณ ๋ คํ•ด์•ผ ํ•  ๋ฌธ์ œ:

  • ํŒŒ์ผ ๋ฌด๊ฒฐ์„ฑ(์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์ด ์—…๋กœ๋“œ๋œ ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ํ™•์ธํ•ฉ๋‹ˆ๊นŒ(ํŒŒ์ผ ์ฒดํฌ์„ฌ, ๊ทธ๋Ÿฌ๋‚˜ ๋ณ‘๋ ฌ๋กœ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ฒดํฌ์„ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•จ).
  • ์ง€์—ฐ ์‹œ๊ฐ„
  • ์‚ฌ์šฉ ์ค‘์ธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ง€์›.

_์„œ๋ฒ„ ์ธก_

  • ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ(์ฐจ๋‹จ/๋น„์ฐจ๋‹จ IO) - ๋‹ค๋ฅธ ์ด๋ฒคํŠธ ๋ชจ๋ธ์ด ์žˆ๋Š” Python ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Gunicorn์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ์ธก์˜ ์„ฑ๋Šฅ ๋ถ„์„(์˜ˆ: ์„œ๋ฒ„๊ฐ€ ํŒŒ์ผ์„ ํŒŒ์ผ ์ €์žฅ์†Œ๋กœ ์ง์ ‘ ํŒŒ์ดํ”„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ฒญํฌ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š”์ง€).
  • ๋™์‹œ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์šด๋กœ๋“œ
์˜ˆ 1: 1000๊ฐœ ํŒŒ์ผ์˜ 260GB ๋ฐ์ดํ„ฐ ์„ธํŠธ. ์–ด๋–ป๊ฒŒ ์—ฐ๊ตฌ์›์ด 1000๊ฐœ์˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์ง€ ์•Š๊ณ ๋„ ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์˜ˆ 2: 4๊ฐœ ํŒŒ์ผ์˜ 260GB ๋ฐ์ดํ„ฐ ์„ธํŠธ. ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ(์˜ˆ: ๋‹ค์šด๋กœ๋“œ ์žฌ๊ฐœ).

_๊ณ ๊ฐ ์ž…์žฅ์—์„œ_
1000๊ฐœ์˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” JavaScript ์•ฑ์„ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์•ฑ์ด ๋‹ค์šด๋กœ๋“œ ์žฌ๊ฐœ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ Javascript ์›น ์ž‘์—…์ž ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ฒญํฌ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

_์„œ๋ฒ„ ์ธก_
HTTP ๋ฒ”์œ„ ์š”์ฒญ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—…๋กœ๋“œ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ ๋ฐ ๋™์‹œ ๋‹ค์šด๋กœ๋“œ). ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๋Š๋ฆฐ ํด๋ผ์ด์–ธํŠธ๋Š” ์ค„์„ ์ฑ„์›๋‹ˆ๋‹ค.

๋ฒ”์œ„ ์™ธ(ํ•˜์ง€๋งŒ ๋…ผ์˜ํ•ด์•ผ ํ•จ): ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ์™€ ๊ฐ™์€ ํŒŒ์ผ ์ „์†ก์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•.


Python ๋ถ€๋ถ„์€ ์ฃผ๋กœ inveniosoftware/invenio-files-rest๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
JavaScript ๋ถ€๋ถ„์€ ๋ณ„๋„์˜ ์ €์žฅ์†Œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ผ๋ฐ˜์ ์ธ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํฐ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? http๋ฅผ ํ†ตํ•œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์€ ๋ช‡ ์‹œ๊ฐ„ ๋‚ด์— ์‹คํŒจํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์œผ๋ฉฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” 50GB ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์šด๋กœ๋“œ ์†๋„๋Š” 500Kbps๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ง€์†๋˜๋Š” 12์‹œ๊ฐ„ ์‚ฌ์ด์— ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋งค์ผ ๊ทธ๊ฒƒ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค(์ €๋Š” ์„์‚ฌ ๋…ผ๋ฌธ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค).
์–ด๋–ค ์ œ์•ˆ?

๋ชจ๋“  6 ๋Œ“๊ธ€

๋‹ค์†Œ ์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚œ ๋ฐฉํ–ฅ์œผ๋กœ ์ด ์˜ค๋ž˜๋œ ๋ฌธ์ œ๋ฅผ ๋ถ€ํ™œ์‹œ์ผœ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค... ์ €๋Š” Zenodo HTTP ์„œ๋ฒ„๊ฐ€ ์›๋ž˜ ์ฃผ์„์— ์–ธ๊ธ‰๋œ HTTP ๋ฒ”์œ„ ์š”์ฒญ์„ ์ง€์›ํ•˜๊ธฐ๋ฅผ ๋งค์šฐ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ, ๊ทธ๋“ค์€ ํ˜„์žฌ ์กด๊ฒฝ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ˜„์žฌ ๋กœ๋“œ๋งต์— ์žˆ์Šต๋‹ˆ๊นŒ?

์ผ๋ฐ˜์ ์ธ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํฐ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? http๋ฅผ ํ†ตํ•œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์€ ๋ช‡ ์‹œ๊ฐ„ ๋‚ด์— ์‹คํŒจํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์œผ๋ฉฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” 50GB ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์šด๋กœ๋“œ ์†๋„๋Š” 500Kbps๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์ง€์†๋˜๋Š” 12์‹œ๊ฐ„ ์‚ฌ์ด์— ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋งค์ผ ๊ทธ๊ฒƒ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค(์ €๋Š” ์„์‚ฌ ๋…ผ๋ฌธ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค).
์–ด๋–ค ์ œ์•ˆ?

5๋ฒˆ์˜ ์‹œ๋„ ํ›„์—๋„ 2.2GB ๋ฐ์ดํ„ฐ์„ธํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†์—ˆ๊ณ  ๋‹ค์šด๋กœ๋“œ ๊ด€๋ฆฌ์ž๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@Vichoko , ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ?

๋‚˜ ์—ญ์‹œ ๋ฉฐ์น  ๋™์•ˆ ๋‘ ๊ฐœ์˜ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ(12Gb ๋ฐ 37Gb)์ด ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ขŒ์ ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

https://zenodo.org/record/1261813 (https://gitlab.com/dvolgyes/zenodo_get)์„ ์ฐพ์•˜๊ณ  ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ ์‹œ๋„์—์„œ ์ „์ฒด ๊ธฐ๋ก์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ฒซ๋ˆˆ์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋งˆ๋ฒ• ๊ฐ™์€ ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ ํŠธ๋ฆญ์ด wget ์˜ Python ๊ตฌํ˜„์˜ ์ผ๋ถ€ ๋‚ด๋ถ€์— ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Link: https://zenodo.org/api/files/cb4ca1fa-1db1-40f9-8f39-0e9d3b2af7ae/musdb18hq.zip   size: 21607.1 MB
  0% [                                             ]     3121152 / 22656664047

2006๋…„์—๋Š” ์ „ํ™” ์ ‘์†์œผ๋กœ 21GB ํŒŒ์ผ์„ ๋” ๋นจ๋ฆฌ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Zenodo๋Š” CDN ์ธํ”„๋ผ๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๊นŒ? S3 ๋˜๋Š” GCS ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Zenodo๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ๋Š๋ฆฌ๊ณ  ๋ถˆ์•ˆ์ •ํ•œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด Zenodo ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰