[AWS] S3 파일 동기화, S3 파일 증가분 복사.

2020. 12. 15. 18:53IT/AWS

AWS S3 파일 이관이 몇 주 이상 소요될 경우,
파일 변경, 증가분에 대한 동기화가 필요하다.


파일 동기화로 진행해도 되지만,
S3는 S3에 업로드된 시점으로 수정된 날짜가 변경되어서 동기화 작업이 비효율 적이다.

또한, 서비스가 완전히 이전되기 전까지 주기적으로 동기화를 진행해 줘야 한다.

그래서 변경이나 추가된 파일만 복사할 수 있도록 파이썬을 통해 스크립트를 작성했다.

 

기화를 진행하는 서버에서 boto3 설치 오류를 해결하지 못해 테스트하지 못하고, aws cli로 진행하였다.

import os
import subprocess
import datetime

# 초기 설정
work_path = "G:\\s3sync"
sync_path = "G:\\"
s3_path = "s3://ABC/"

date = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
ymd = datetime.datetime.now() - datetime.timedelta(days=7)
ymd = ymd.strftime("%Y-%m-%d")

file_name=work_path+"\\sync_file_"+"_list_"+date+".txt"

# 동기화 대상(수정된 목록) 조회
os.system('forfiles /P %s /D %s /S /C "cmd /c echo @isdir @path" | findstr FALSE > %s' % (sync_path,ymd,file_name))

# S3 경로 변환
text_file = open("%s" % (file_name), "r")
sync_list = text_file.read().splitlines()
text_file.close()

# S3 파일 업로드
for file_path in sync_list:
    file_path_local=file_path.replace('"','').replace("\\","/").replace("FALSE ","")
    file_path_s3=file_path_local.replace("G:/",s3_path)
    os.system('aws s3 cp %s %s >> %s\\upload_%s.log' %(file_path_local,file_path_s3,work_path,date))

'IT > AWS' 카테고리의 다른 글

[AWS] ACM 인증서 일괄 등록 및 인증 레코드 생성하기.  (0) 2020.12.15
[AWS] CLI로 비밀번호 확인 하기.  (0) 2020.11.14
[AWS] CentOS root 계정 로그인  (0) 2020.08.26
[AWS] AWS 용어  (0) 2020.08.05