[python] Fabric으로 원격 서버 전송 제한 설정하기

Fabric은 파이썬 기반의 배포 자동화 도구로, 원격 서버에 명령을 전송하고 관리하는 작업을 수행할 수 있습니다. 이번 포스트에서는 Fabric을 사용하여 원격 서버에 파일을 전송할 때의 제한 설정에 대해 알아보겠습니다.

Fabric 설치하기

Fabric을 사용하기 위해서는 먼저 Fabric을 설치해야 합니다. 터미널에서 아래의 명령을 실행하여 Fabric을 설치할 수 있습니다.

pip install fabric

Fabric이 성공적으로 설치되었다면, 다음으로 진행해보겠습니다.

원격 서버에 파일 전송하기

Fabric을 통해 원격 서버에 파일을 전송하기 위해서는 put 함수를 사용합니다. put 함수의 사용법은 다음과 같습니다.

put(local_path, remote_path)

예를 들어, 로컬 컴퓨터의 /path/to/local/file 경로에 있는 파일을 원격 서버의 /path/to/remote/file 경로로 전송하고 싶다면, 아래와 같이 코드를 작성할 수 있습니다.

from fabric import Connection

def send_file():
    c = Connection('user@host')
    local_path = '/path/to/local/file'
    remote_path = '/path/to/remote/file'
    c.put(local_path, remote_path)

위의 코드에서 Connection('user@host') 부분을 자신의 원격 서버의 사용자 이름과 호스트 주소로 변경해야 합니다.

전송 제한 설정하기

Fabric을 사용하여 파일을 전송할 때, 파일 크기가 크면 전송에 시간이 오래 걸리거나 전송에 실패할 수 있습니다. 이때, Fabric은 Config 클래스를 사용하여 전송 제한을 설정할 수 있는 옵션을 제공합니다.

Config 클래스의 upload_max 속성을 사용하여 파일 전송의 최대 크기를 제한할 수 있습니다. 기본값은 None으로, 제한이 없음을 의미합니다. upload_max 속성에 전송할 파일의 크기 제한을 설정하면 됩니다.

아래의 예시 코드에서는 100MB 이상의 파일은 전송하지 않도록 설정하는 방법을 보여줍니다.

from fabric import Connection, Config

def send_file():
    c = Connection('user@host', config=Config(upload_max=100000000))
    local_path = '/path/to/local/file'
    remote_path = '/path/to/remote/file'
    c.put(local_path, remote_path)

위의 코드에서 100000000은 100MB를 의미합니다.

결론

Fabric을 사용하여 원격 서버에 파일을 전송할 때, 파일 크기에 제한을 설정하면 신뢰성있게 파일 전송을 수행할 수 있습니다. 이를 활용하여 원격 서버로 파일을 안전하고 빠르게 전송해보세요!