티스토리 뷰

728x90

AWS Lambda를 활용한 tar 압축 및 해제 작업

 

 

AWS Lambda서버리스 컴퓨팅 환경에서 코드를 실행할 수 있는 서비스로, 파일 처리 작업을 자동화하는 데 유용하게 사용될 수 있습니다. 이번 글에서는 Python을 사용하여 tar 압축 및 해제 작업을 AWS Lambda 함수로 구현하는 방법을 알아보겠습니다. 또한, tar 압축 시 arcname 옵션의 활용에 대해서도 다룰 것입니다.

 

 

 

이 글을 작성하는 이유는, 회사에서 AWS Lambda tar 파일 압축해서 S3에 업로드를 하는데 자꾸 /tmp라는 Dir로 압축이 되는 거예요!!!

그래서 이놈을 어떻게 뺄 수 있을까 고민을 하다가 찾게 되었습니다.

728x90

이놈인데 이걸

이렇게 이쁘게 만드는 방법 한번 해보겠습니다.

 

tar 압축 함수

 

 

아래는 tar 압축 작업을 수행하는 Lambda 함수의 예시 코드입니다:

import tarfile

def compress_tar(event, context):
    input_file = event['input_file']
    output_file = event['output_file']
    arcname = event['arcname']  # arcname 옵션을 이용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있음

    with tarfile.open(output_file, "w:gz") as tar:
        tar.add(input_file, arcname=arcname)

    print(f"Successfully compressed {input_file} to {output_file}")

 

이때, arcname 옵션을 이용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있습니다. 이 옵션을 활용하면, 압축 파일 내의 파일 및 디렉토리를 원하는 구조로 조정할 수 있습니다.

 

arcname 옵션은 tar 압축 시 압축 파일 내의 디렉토리 구조를 지정하는 데 사용됩니다. 이 옵션을 활용하면, 압축 파일 내의 파일 및 디렉토리를 원하는 구조로 조정할 수 있습니다. 예를 들어, arcname 옵션을 사용하여 압축 파일 내의 디렉토리 이름을 변경하거나, 상위 디렉토리를 포함하지 않고 파일을 압축할 수 있습니다.

 

 

 

tar 해제 함수

 

아래는 tar 해제 작업을 수행하는 Lambda 함수의 예시 코드입니다:

 

import tarfile

def extract_tar(event, context):
    input_file = event['input_file']
    output_dir = event['output_dir']

    with tarfile.open(input_file, "r:gz") as tar:
        tar.extractall(output_dir)

    print(f"Successfully extracted {input_file} to {output_dir}")

 

 

 

AWS Lambda 활용하여 Python으로 tar 압축 및 해제 작업을 자동화하는 방법을 소개했습니다. 또한, arcname 옵션을 활용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있음을 다루었습니다. 이를 통해 쉽고 빠르게 파일 처리 작업을 자동화할 수 있습니다.

728x90
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함