본문 바로가기
Engineering/Cloud (AWS, ..)

[aws-cli] how to copy/sync file to aws s3 bucket

by 알탱2 2022. 12. 5.
반응형

AWS CLI 설치 (Install)

Link : https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface

이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이

docs.aws.amazon.com

** aws cli를 사용하기 위해 계정 정보 입력을 해야하는데, "aws configure" 명령어로 업로드 할 s3 bucket에 권한이 있는 계정의 "Access Key"와 "Secret Access Key"를 입력해 두어야 한다. 해당 정보는 ~/.aws/credentials 파일에 저장되니, 공용 PC에서 실행하는 경우, 작업이 끝난 후 해당 정보를 초기화 해주어야 한다.

 

S3에 file(or directory) copy

: aws s3 cp 옵션을 통해 copy를 할 수 있음. 

 

(1) file copy :

# aws s3 cp {filename} s3://{bucket-name}
aws s3 cp a.txt s3://cp-file-dir

 

(2) file and directory copy : (--recursive option) : 단일 파일이 아닌 폴더 내의 모든 파일과 하위 폴더를 복사하고자 할 때 사용

# aws s3 cp {directory-name} s3://{bucket-name}
aws s3 cp --recursive dir1 s3://cp-dir1

* 그 외, 추가로 활용할 만한 옵션 : 

--include 또는 --exclude: 특정 패턴(확장자, 등..)을 복사 대상에 포함하거나 제외 가능

 

(3) s3 bucket 파일 목록 확인 : 

# aws s3 ls s3://{bucket-name}
aws s3 ls s3://cp-dir1

 

 

S3에 file(or directory) sync

: aws s3 cp 옵션을 통해 file directory와 s3 bucket 또는 s3 bucket 간에 폴더 및 파일을 동기화할 수 있음.

: 테스트 데이터로 사용되는 파일의 수와 용량이 너무 큰 경우, 로컬 storage 용량이 부족하여 주기적으로 aws s3에 백업을 해두고, 자주 사용되지 않는 파일들은 로컬에서 삭제하여 로컬 storage 용량 확보에 활용하고자 함. 

 

(1) directory sync :

# aws s3 sync {filename} s3://{bucket-name}
aws s3 sync /home/test/path1 s3://sync-dir/server1/path1

 

(2) --delete option : 1회 이상 sync 또는 copy가 된 상태에서 source에서 삭제된 파일을 destination에서 삭제까지 하는 옵션 (백업이 필요한 파일인 경우 주의하여 사용할 것!!)

# aws s3 sync --delete {source path} {destination path}
aws s3 sync --delete /home/test/path1 s3://sync-dir/server1/path1

* 그 외, 추가로 활용할 만한 옵션 : 

--include 또는 --exclude: 특정 패턴(확장자, 등..)을 sync 대상에 포함하거나 제외 가능

 

 


그 외, 정보 참고는 아래 링크 참고 : 

* AWS-CLI S3 관련 : https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-services-s3-commands.html

 

AWS CLI에서 상위 수준(s3) 명령 사용 - AWS Command Line Interface

PowerShell을 사용하는 경우 셸은 CRLF의 인코딩을 변경하거나, 파이프 입력이나 출력 또는 리디렉션된 출력에 CRLF를 추가할 수 있습니다.

docs.aws.amazon.com

* AWS-CLI S3 사용 가능 옵션 정보 : https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html

 

cp — AWS CLI 2.9.4 Command Reference

metadata-directive - Copies the following properties from the source S3 object: content-type, content-language, content-encoding, content-disposition, cache-control, --expires, and metadata

awscli.amazonaws.com

 

반응형

댓글