최근 회사에서 S3에 업로드된 이미지 파일 URL 전체가 필요한 일이 생겼다.
업로드 된 파일이 한두개가 아니기 때문에 하나하나 복붙하기에는 무리가 있어 한번에 저장하는 방법을 찾게 되었다.
아래 작성된 내용은 추후에 또 이런 일이 발생했을 때 참고하기 위해 작성된 것이다.
AWS CLI 설치 (+ Mac 기준)
Mac os는 homebrew를 통해 간단하게 설치가 가능하다.
~ brew install awscli // Homebrew를 통해 설치
~ aws --version // 설치 후 버전 확인
버전 확인 명령어로 버전이 확인된다면 정상적으로 설치가 완료된 것이다.
AWS CLI Configure
AWS Cli를 사용하기 위해서는 AWS에서 발급한 IAM 사용자의 Access Key ID, Secret Access Key가 필요하다.
~ aws configure
AWS Access Key ID [None] : [발급받은 IAM의 Access Key ID]
AWS Secret Access Key [None] : [발급받은 IAM의 Secret Access Key]
Default region name [None] : ap-northeast-2[서울 리전]
Default output format [None] : text / json / table 중 선택, 해당 글에선 text를 선택하였다.
1. 원하는 폴더의 파일명을 txt 파일로 저장
~ aws s3 ls [S3 URI 주소] --recursive --output text --query "Contents[].Key" > [저장할 파일명].txt
위 명령어를 실행하면 현재 명령어를 실행한 장소에 파일이 저장되어 있다.
2. 파일명.txt 를 URL로 변환
1번의 명령어를 실행하면 위 이미지와 같이 저장된다. 여기서 중요한 것은 단순 텍스트 파일이라 '공백'을 기준으로 섹션이 나뉘기 때문에 파일명에 띄어쓰기가 있을 경우 URL로 변환할 때 텍스트가 누락될 수 있다.
~ awk '{print "[파일명 앞에 붙어야하는 주소]"$4}' [변환이 필요한 파일명].txt > [변환 후 저장할 파일명].txt
명령어에 $4는 텍스트 파일에서의 섹션을 의미하기 때문에 사용해야 하는 텍스트가 몇번 섹션인지 알고 있어야 한다.
위 명령어를 통해 변환된 파일을 열어보면 아래와 같이 저장된 것을 알 수 있다.
'CS > AWS' 카테고리의 다른 글
[EC2] SSH 접속 종료 후에도 서버를 유지 시키는 법 (0) | 2024.05.09 |
---|---|
[AWS] 도메인 주소와 인스턴스 연결하기 (0) | 2024.03.17 |