본문 바로가기

TIL

cyberduck cli로 리눅스에서 FTP로 구글 드라이브에 파일 업로드하기

반응형

제일 중요한 터미널에서 칠 커맨드

duck --username [자신의 gmail] --parallel [커넥션 갯수] --upload "googledrive:/[드라이브 상의 경로]" [로컬 파일 경로]

Colab에서 사용하려고 구글 드라이브에 파일을 올리려고 했는데 파일 갯수가 많다보니 처음 올리니까 100시간 걸린다고 나오더라.

이건 도저히 못쓰겠다 싶어서 FTP로 커넥션 여러개 꼽아서 동시에 전송 가능한 방법을 알아봤다.

유료 프로그램인 파일질라 프로나 smartFTP 같은 걸 써도 되고 cyberduck이라는 무료 프로그램도 가능했다.

그런데 cyberduck이란 놈이 리눅스에선 GUI 앱이 없고 cli로만 사용 가능하다. 여기까진 괜찮은데 document가 좀 구려서 시행착오를 조금 했다.

Cyberduck CLI 버전은 https://duck.sh/ 여기서 리눅스를 클릭하면 받는 커맨드가 나온다.

레드햇 계열은 아래 커맨드를 쓰면 된다고 한다.

echo -e "[duck-stable]\nname=duck-stable\nbaseurl=https://repo.cyberduck.io/stable/\$basearch/\nenabled=1\ngpgcheck=0" | sudo tee /etc/yum.repos.d/duck-stable.repo
sudo yum install duck

데비안 계열은 아래 커맨드를 쓰면 된다. 난 우분투를 사용하고 있어서 아래 커맨드로 진행하니 설치가 진행됐다.

echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
sudo apt-get update
sudo apt-get install duck

이러면 이제 설치가 잘 진행될 것이다.

여기서 이제 자신의 구글 드라이브에 접속하려면 인증을 받아야 하는데 이를 받기 위해서 일단 자신의 구글 드라이브의 목록을 읽어오는 것을 하면 된다. 쉘에는 아래와 같이 치자.

duck --username [자신의 gmail] --list googledrive:/

일단 처음에 이 커맨드를 실행하면 OAuth 어쩌구가 뜰텐데 컨트롤 누르고 클릭해서 해당 링크로 들어간 뒤에 로그인 하고 나오는 토큰을 복사해서 터미널에 잘 붙여넣기 해주자. 그러면 이제 password 저장할거냐고 묻는데 raw text로 저장되니까 잘 생각해서 결정하자. 그냥 저장하면 편하다.

이제 여기까지 실행하면 다음과 같이 자신의 드라이브에 뭐가 있는지 조회가 될 것이다.

이제 업로드 하고 싶은걸 본인의 드라이브 경로를 잘 잡아서 업로드 하자. My Drive에 띄어쓰기가 있어서 쌍따옴표로 경로를 묶어줘야 잘 돌아갈 것이다.

자신의 드라이브 안에 test란 폴더가 있다면 "googledrive:/My Drive/test" 로 경로를 작성하면 된다. 만약 폴더 안에 내용을 보고 싶다면 꼭 끝에 '/'를 붙여줘야 한다."googledrive:/My Drive/test/" 처럼 말이다.

커넥션 갯수를 지정할 수 있는데 --parallel [갯수] 로 하면 된다. 그리고 업로드를 한다고 --upload 를 옵션으로 주면 된다. 종합해보면 아래처럼 쓰면 된다.

duck --username [자신의 gmail] --parallel [커넥션 갯수] --upload \ 
        "googledrive:/[드라이브 상의 경로]" [로컬 파일 경로]
반응형

'TIL' 카테고리의 다른 글

파이썬 f-string 템플릿으로 쓰기  (1) 2021.10.15
도커 스크립트에서 MySQL root 패스워드 없애기  (3) 2021.10.01
자주 쓰는 단축어 정리  (0) 2021.05.29
Just-In-Time 컴파일 방식  (1) 2021.05.28
C++ override 키워드  (0) 2021.05.26