s3에 있는 파일들을 로컬에 다운로드해서
다시 google drive로 업로드한다?
말로만 들어도 귀찮음
그래서 툴을 알아왔따.
rclone.
Rclone
© Nick Craig-Wood 2014-2025 Source file _index.md last updated 2024-09-04 Uploaded with rclone. Built with Hugo. Logo by @andy23. Served by Caddy. Hosted at Hetzner Cloud.
rclone.org
원격 저장소를 만들어서 파일을 이동시키는 툴이다.
스토리지 사이에 데이터를 옮길떄 유용한 도구이다.
만능 Migration Tool 이다!
이번 글에서는 rclone 사용하는 방법을 알아보려고 한다.
참고로 맥북에서 진행했다.
rclone 설치
brew install rclone
설치 확인 : rclone version
rclone 설정 : s3 스토리지
기본적으로 source와 destination을 설정해야한다.
정말 다양한 스토리지를 지원하는데, 나는 s3에서 google drive로 이동하고자 했다.
rclone config를 입력하고, n을 입력한다. 그리고 새로운 이름으로 remote를 하나 만든다.
그다음에는 여러가지 스토리지가 뜬다.
나는 s3를 source로 지정할것이기 때문에 Storage> s3 를 입력했다.
s3를 선택해서 그런지 Provider를 입력하라고 나온다. 그래서 AWS를 입력했다.
아시다시피 aws의 서비스를 사용하기 위해선 credentials가 필요하다.
내 계정의 acceess key와 secret key를 직접 입력한다. region도 입력한다. (15번 서울리전)
그리고 다 추가적인 option을 입력하라고 하는데 그냥 빈값 엔터로 패스했다.
그러다가 이제 추가적으로 config 더 수정할거냐고 물어보는데 그때 no를 하면,config 설저이 완료된다.
그리고 실제로 remote가 제대로 된지 이렇게 명령어로 확인해볼수 있따.
rclone ls "s3remote:<버킷명>/경로"
참고로 띄어쓰기가 있는 경로라면 ""로 구분 해줘야한다.
s3remote는 내가 방금 생성한 remote 저장소 이름.
rclone 설정 : 구글 드라이브
다음으로 구글드라이브 remote config를 만들어준다.
20번 정도에 잇었는데, 그냥 drive로 써줘도 된다.
그리고 또 추가로 option 설정을 하라고 하는데 다 빈값 엔터로 패스했다.
중간에 공개범위만 all로 scope>1로 설정.
그러다보면 갑자기 창이 나온다. 구글 계정 선택하고 확인하라는 창이 리디렉션 댐.
구글 계정으로 로그인되면, drive 저장소도 토큰과 함께 새로 생겨났다.
실제로 remote가 제대로 되는지 이렇게 명령어로 확인해볼수 있따.
rclone ls "gdrive:경로"
gdrive는 내가 방금 생성한 remote 저장소 이름.
데이터 이동시키기
이제 그럼 본격적으로 데이터를 이동시킬 준비가 완료되었다. 아래 명령어로 각각 경로에 있는 파일을 이동시킬수 있다.
reclone copy "s3remote:<버킷명>/<경로명>" "gdrive:<폴더명>/<경로명>"
구글 드라이브에 파일을 수동으로 안만들어도,
s3와 같은 하위 경로에 파일이 새로 생성되면서 전체적으로 파일이 이동된다.
와 그런데 너무 느리다.
3기가 정도 되는 파일을 이동시키는데 46분???
s3에 있는걸 로컬 리모트로 땡겨오는데 시간이 오래 걸리는걸수도 있고,
떙겨와서 구글 드라이브로 옮기는데 시간이 오래 걸리는걸수도 있고,,,
원래 네트워크가 너무 느린건가,,
일단 최대한 성능을 내 볼수 있는 옵션을 설정했다.
- --transfers=32: 동시에 전송하는 파일 개수 (기본 4)
- --checkers=64: 동시에 체크하는 파일 수 (기본8)
- --drive-chunk-size=256M: Google Drive 업로드 시 청크 크기 (기본8M) 속도 향상되지만 메모리 사용 증가
- --multi-thread-streams=4 : 큰 파일은 병렬로 전송할수 있는 옵션 (기본 0)
- --multi-thread-cutoff=10M : 이 크기 이상 파일부터 멀티스레딩 (기본 100M)
- --buffer-size=64M: 각 파일 전송시 버퍼크기 증가(기본 16M), 속도 향샹되지만 메모리 사용 증가
- --s3-upload-concurrency=8: S3 쪽 업로드/다운로드 병렬 처리 수 증가
- --s3-chunk-size=64M : S3 다운로드 시 병렬 처리 단위 증가
- --fast-list: 디렉토리 목록 빠르게 로딩 (많은 파일이 있을때 효과적)
- --tpslimit=10: google api 제한방지 (너무 높이면 오류예상)
- --progress 실시간 진행 상황 표시

'Tool & Setting' 카테고리의 다른 글
JetBrains AI Assistant 사용방법과 사용후기 (코드설명,리팩토링 제안) (5) | 2025.04.01 |
---|---|
[Tool] Json Formatter, ObjGen: API JSON response 만들기 (0) | 2023.07.01 |
[Intellj] M1맥북, Intellj 느릴때 - apple silicon 버전 재설치 (1) | 2022.11.07 |
git GUI tool, SourceTree에서 Fork로 갈아타다 (0) | 2022.08.01 |
[Tool] Medis2 : Redis GUI Client 프로그램(Mac M1 가능) (0) | 2022.02.06 |
[단축키] 개발자 생산성 높이는 Mac 단축키와 IntelliJ 단축키 (2) | 2022.02.05 |