aws s3 cp/mv
๋ช
๋ น์ ํธ๋ฆฌํ ๊ธฐ๋ฅ --no-overwrite
์ด ์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ์ผ์ s3 ๋ฒํท์ ๋ฃ๊ธฐ ์ ์ ๋์ ๋์์ด ์ด๋ฏธ ์กด์ฌํ์ง ์๋์ง ํ์ธํฉ๋๋ค.
๋ฌผ๋ก ์ด ๋ก์ง์ AWS API(afaik...)์์ ๋ณด์ฅํ ์ ์๊ณ ๊ฒฝ์ ์กฐ๊ฑด ๋ฑ์ ์ทจ์ฝํฉ๋๋ค. ํ์ง๋ง ์๋ํ์ง ์์ ์ค์๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค!
๊ธฐ๋ฅ ์์ฒญ์ผ๋ก ํ์. cp
๋๋ mv
์์ ์ํํ ๊ฒฝ์ฐ ๊น๋ค๋ก์ด ๋ถ๋ถ์ CLI๊ฐ ์
๋ก๋๋ฅผ ์๋ํ๊ธฐ ์ ์ ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธํ๊ธฐ ์ํด S3๋ฅผ ์ฟผ๋ฆฌํด์ผ ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ด๋ฏธ ํ๊ณ ์์ผ๋ฏ๋ก sync
์ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค.
cp
๋ฐ/๋๋ mv
์์๋ ์ด๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค.
์ง๊ธ sync
๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋์ ๋ฒํท์ ๋์ ๋๋ ํ ๋ฆฌ ์๋์ ๊ธฐ์กด ํ์ผ์ด ๋ง์ด ์๋ ๊ฒฝ์ฐ sync
์ ์ฃผ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
aws s3 cp --recursive newdir s3://bucket/parentdir/
๋ฅผ ์คํํ๋ฉด ์ค์ ๋ก ๋ณต์ฌํ๋ ๊ฐ ํ์ผ๋ง ๋ฐฉ๋ฌธํฉ๋๋ค.
aws s3 sync newdir s3://bucket/parentdir/
๋ฅผ ์คํํ๋ฉด ๋ณต์ฌ ์ค์ธ ํ์ผ์ ๋ฐฉ๋ฌธํ์ง๋ง s3://bucket/parentdir
(์ด๋ฏธ ์์ฒ ๋๋ ์๋ฐฑ๋ง ๊ฐ์ ํ์ผ์ด ํฌํจ๋์ด ์์ ์ ์์)์ ์ ์ฒด ํ์ผ ๋ชฉ๋ก์ ํ์ํ๊ณ ๊ฐ ๊ธฐ์กด ํ์ผ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. .
์ถฉ๋ถํ ํฐ ๋์ ๋ฒํท์์ aws s3 cp --recursive
๋ ๋ช ์ด๊ฐ ๊ฑธ๋ฆด ์ ์๊ณ aws s3 sync
๋ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋ ๋ฐ ๋ช ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๋ถ๋ช
ํ sync
๋ฅผ ์์ ํ๋ ๊ฒ์ด ์ข์ง๋ง cp
์ "ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํ๋์ง ํ์ธ" ์ฟผ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด sync
์ฝ๋๋ฅผ ๋ค์์ผ๋ก ์์ ํ๋ ๊ฒ๋ณด๋ค ๋ค๋ฃจ๊ธฐ ์ฌ์ด ๋ฌธ์ ์
๋๋ค. ๋น ๋ฅด๊ฒ ํ๋ ค๋ฉด ๋์ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค.
์ ๋ ์ด ๊ธฐ๋ฅ์ ๊ด์ฌ์ด ๋ง์ต๋๋ค. ํ์ผ ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ์ํ ์ ํ์ ๋ํํ ํ๋กฌํํธ๋ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ @sgrimm-sg, ์ดํด๊ฐ ๋ฉ๋๋ค. ๋ํ ์ด๋ฌํ ์กฐ๊ฑด์ ์ค์ ๋ก ์ฒ๋ฆฌํ ์ ์๋ CLI cp ๋ช ๋ น๋ ๋ณด๊ณ ์ถ์ต๋๋ค.
aws s3 sync
์ ์ต์
์ด ๋๋ ๊ฒ์ ๋งค์ฐ ์ ์ฉํ ๊ฒ์
๋๋ค. rsync
์๋ ์ด ๊ธฐ๋ฅ์ด --ignore-existing
๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ด ๊ธฐ๋ณธ ์ค์ ์ rsync
์ ์ด๋ฏธ ์ต์ํ ์ฌ๋๋ค์ด ๋ง์ด ์์ ๊ฒ์ผ๋ก ์๊ฐ๋๋ฏ๋ก rsync
์ ๋์ผํ ์ต์
์ด๋ฆ์ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค.
์ข์ ์์นจ!
AWS CLI์ ๊ด๋ จ๋ ๊ธฐ๋ฅ ์์ฒญ์ ์ํด UserVoice ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ณผ์ ์ ์ผํ์ผ๋ก GitHub์์ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฒ๊ทธ ๋ณด๊ณ ์๋ก ๋ํ๋ฅผ ํฌ์ํ์ง ์๊ณ ๊ฐ์ฅ ๊ด์ฌ ์๋ ๊ธฐ๋ฅ์ ๋ ์ฝ๊ฒ ๊ฒ์ํ๊ณ ์ง์์ ํ์ํ ์ ์์ผ๋ฏ๋ก ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์ ์ป์ ์ ์์ต๋๋ค.
๋น ๋ฅธ UserVoice ์ ๋ฌธ์(์์ง ์ต์ํ์ง ์์ ๊ฒฝ์ฐ): ์์ด๋์ด๊ฐ ๊ฒ์๋ ํ ์ฌ๋๋ค์ ์์ด๋์ด์ ํฌํํ ์ ์์ผ๋ฉฐ ์ ํ ํ์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ ์์ ์ง์ ์๋ตํฉ๋๋ค.
GitHub์์ ๊ธฐ์กด ๊ธฐ๋ฅ ์์ฒญ์ ๊ฐ์ ธ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ด ๋ฌธ์ ๋ฅผ ๊ฒ์ํ์ธ์!
๊ทธ๋ฆฌ๊ณ ๊ฑฑ์ ํ์ง ๋ง์ธ์. ์ด ๋ฌธ์ ๋ ํ๋๋ฅผ ์ํด GitHub์ ๊ณ์ ์กด์ฌํฉ๋๋ค. ์๋ณธ ๊ฒ์๋ฌผ์ UserVoice๋ก ํ ์คํธ๋ง ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ GitHub ๋ฌธ์ ์ ๋ํด ์ด๋ฏธ ์กด์ฌํ๋ ์๊ฒฌ๊ณผ ํ ๋ก ์ ๊ณ์ ์ผ๋์ ๋ ๊ฒ์ ๋๋ค.
GitHub๋ ๋ฒ๊ทธ ๋ณด๊ณ ๋ฅผ ์ํ ์ฑ๋๋ก ๋จ์ ๊ฒ์ ๋๋ค.
๋ค์ ํ ๋ฒ, ์ด ๋ฌธ์ ๋ ์ด์ https://aws.uservoice.com/forums/598381-aws-command-line-interface ์์ ์ ๋ชฉ์ ๊ฒ์ํ์ฌ ์ฐพ์ ์ ์์ต๋๋ค.
-AWS SDK ๋ฐ ๋๊ตฌ ํ
์ด ํญ๋ชฉ์ ํนํ UserVoice( https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168406-add-no-overwrite-option-to-aws-s3- )์์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ด๋ จ๋:
์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก GitHub ๋ฌธ์ ์ ๊ธฐ๋ฅ ์์ฒญ์ ๋ฐํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
@jamesls ๋ฉ์ง๋ค์ ! ์ ์์ ์๋ตํด ์ฃผ์๊ฒ ์ต๋๊น? --no-overwrite๋ ํ๋ฅญํ ์ถ๊ฐ ๊ธฐ๋ฅ์ด๋ฉฐ ์คํฌ๋ฆฝํธ๋ก ํธ์ถ์ ๋ํํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
์ด ๋ฌธ์ ์ +1. ๊ธฐ์กด Linux cp ๋ช ๋ น ์ต์ ๊ณผ ์ผ์นํ๋๋ก -n, --no-clobber๋ฅผ ์ ์ํฉ๋๋ค.
์ด ์์ฒญ์ด ๊ตฌํ๋ ์ ์ด ์์ต๋๊น? ๋ก์ปฌ ๋ฐฑ์ > S3๋ฅผ ์ํํ๊ธฐ ์ํด Windows ๋ฐฐ์น ํ์ผ๋ก ์์ ํ๋ ค๊ณ ํ๋ฉด ์ด๊ฒ์ด ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ธ ๊ฐ๋จํ ๋ฎ์ด์ฐ๊ธฐ ๊ธ์ง ๋๋ ์ ์ฌํ ํ๋๊ทธ์ ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๊ฐ์ฌ ํด์
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
sev3, +1
S3 ๋๊ธฐํ๊ฐ ๋ชจ๋ ํ์ผ์ ์ ๋ก๋ํ์ง ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ ๋ฐ์ดํธ ๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ ๋ฐ์ดํธ ๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋ฒํท์ ๋ชจ๋ ํญ๋ชฉ์ ์ด๋ ์ด(๋ชฉ๋ก)์ ๋ก๋ํ๋ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ค์ ๋๊ธฐํํ๋ ค๋ ๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ ํญ๋ชฉ์ ๋ก๋ํ ๋ค์ ์ด๋ ์ด๋ฅผ ๋น๊ตํ๊ณ S3 ์ด๋ ์ด์ ์๋ ๋ก์ปฌ ํญ๋ชฉ์ ์ ๋ก๋ํด์ผ ํ์ต๋๋ค. .
๋ฒํท์ ๋ชจ๋ ํญ๋ชฉ์ ์ด๋ ์ด(๋ชฉ๋ก)์ ๋ก๋ํ๋ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ค์ ๋๊ธฐํํ๋ ค๋ ๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ ํญ๋ชฉ์ ๋ก๋ํ ๋ค์ ์ด๋ ์ด๋ฅผ ๋น๊ตํ๊ณ S3 ์ด๋ ์ด์ ์๋ ๋ก์ปฌ ํญ๋ชฉ์ ์ ๋ก๋ํด์ผ ํ์ต๋๋ค. .
@southpaw5271 - ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต์ ํ๊ณ ์๊ฐ์ ์ ์ฝํด ์ฃผ์๊ฒ ์ต๋๊น? ; )
๋ฒํท์ ๋ชจ๋ ํญ๋ชฉ์ ์ด๋ ์ด(๋ชฉ๋ก)์ ๋ก๋ํ๋ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ค์ ๋๊ธฐํํ๋ ค๋ ๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ ํญ๋ชฉ์ ๋ก๋ํ ๋ค์ ์ด๋ ์ด๋ฅผ ๋น๊ตํ๊ณ S3 ์ด๋ ์ด์ ์๋ ๋ก์ปฌ ํญ๋ชฉ์ ์ ๋ก๋ํด์ผ ํ์ต๋๋ค. .
@southpaw5271 - ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต์ ํ๊ณ ์๊ฐ์ ์ ์ฝํด ์ฃผ์๊ฒ ์ต๋๊น? ; )
๋ ์ด์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค :( ์ฃ์กํฉ๋๋ค!
์ด ํ๋๊ทธ๋ cp
๋ช
๋ น์๋ ์ ์ฉํฉ๋๋ค. $ sync
๋ ๋์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๋์ ํ์ผ ๋ณต์ฌ๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
aws s3 cp --no-overwrite ./somefile s3://bucket/othername
s3์์ ๋ก์ปฌ๋ก --no-overwrite ์ต์ ๋ ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์์ ๊ฐ์ธ์ด ์ค์๋ก ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ํ์ฌ ํ์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ทธ๋ค์ ์ํ "๊ฐ๋๋ ์ผ"์ ์ค์นํ๋ ๋งค์ฐ ๊ฐ์ฌํ ๋ฐฉ๋ฒ์ด ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฌ ํด์!
๋ชจ๋ ์ ๋ฐ์ดํธ?
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๊ฐ์ฌํฉ๋๋ค
+1
+1
์ด์ ์์คํ ์์ ํ์ผ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์์ต๋๋ค. db ์ด์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค(์ฆ, ๊ฐ ์กฐ์ง์ ์ด์ ํน์ ๋ฒํท์ ์์ฒด ํด๋๋ฅผ ๊ฐ์ง). ๊ทธ๋์ ์ ๋ sync ๋ช ๋ น์ ์์กดํ ์ ์์ต๋๋ค. -skip-duplicate ๋๋ ์ผ์ข ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ๋ถ๋ถ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํํ ์ ์์ต๋๋ค.
+1
์ด๊ฒ์ ์ ์คํ ํ์ํฉ๋๋ค. ์ ์ด๋ฏธ ๊ฑฐ๊ธฐ์ ์์ง ์์ต๋๊น?
+1
+10
์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ๊ฐ์ฌํฉ๋๋ค
์ด ๊ธฐ๋ฅ์ ๋ํ ํฌํ๋ ํด์ฃผ์ธ์!
+1
+1
+1
++1
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
+1
์์ง๋ ์ผ์ด ์๋๋ผ๋๊ฒ ๋ฏฟ๊ฒจ์ง์ง๊ฐ ์๋ค์. S3์์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
S3 ๋ฒํท์์ ๋ก์ปฌ Linux ๋ง์ดํธ๋ก ๋ฐ์ดํฐ ๋ณต์ฌ๋ฅผ ์์ํ์ผ๋ฉฐ ๋์์ ํฌ๊ธฐ๋ S3 ๋ฒํท๋ณด๋ค ~40GB ์์ต๋๋ค. ๋๋ฝ๋ ๊ฒ๋ง ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์ญ์์ค. ๋ค ๋ณต์ฌํ๋๊ฒ ์๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ์๋๋ฏ..
๋น์ทํ ๊ฒ์ ์ํํ ์ ์๋ aws s3 sync
--size-only
๋ถ์ธ ํ๋๊ทธ๋ก, ์๋ณธ๊ณผ ๋์ ๊ฐ์ฒด ๊ฐ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ง ๋์์์ ์ฌ์ ์๋ฉ๋๋ค.
--size-only (boolean) Makes the size of each key the only criteria used
to decide whether to sync from source to destination.
๋ด๊ฐ ์ฌ์ฉํ ๋ช ๋ น,
aws s3 sync s3://<source bucket> s3://<destination bucket> --size-only
_์ค์_: ๋จผ์ --dry-run
๋ถ์ธ ํ๋๊ทธ์ ํจ๊ป ์์ ๋ช
๋ น์ ์คํํ์ฌ ์ค์ ๋ก ์คํํ๊ธฐ ์ ์ ์ด ๋ช
๋ น์ด ๋ฌด์์ ํ๋ ค๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ ํ๋ก๋์
์์คํ
๊ณผ ๊ด๋ จ๋ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ์ด๊ฒ์ ๋ง์ ์ฃผ์์์ ๋์จ ๊ฒ์
๋๋ค.
๋์์ด ๋์ง ์์ต๋๋ค. #5456์ด DH์์ ์ฒ๋ฆฌ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก GitHub ๋ฌธ์ ์ ๊ธฐ๋ฅ ์์ฒญ์ ๋ฐํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.