저는 파이썬을 처음 사용하고 있으며 근본적으로 MySQL 데이터베이스를 읽고 Amazon Glacier에 업로드하여 일부 파일을 보관하는 스크립트를 작성하기 시작했습니다. 아마존에서 제공하는 boto
모듈을 몇 가지 다른 모듈과 함께 사용하고 있습니다.파이썬에서 타사 모듈을 사용/통합하는 방법
외부 서비스에 연결하는 모듈을 설치하고 활용할 때 동일한 패턴을 반복해서 복제하는 것처럼 보였습니다. 먼저 전역 설정 값을 읽고 연결 함수를 정의하는 래퍼 모듈을 작성한 다음 다양한 태스크를 수행하는 모듈에 함수를 작성하기 시작합니다. 예를 들어, 현재 boto
래퍼 모듈의 이름은 awsbox
이며 getConnection
및 glacierUpload
과 같은 기능으로 구성됩니다. 다음은 간단한 예입니다.
import config,sys,os
import boto,uuid
_awsConfig = config.get()['aws']
def getGlacierConnection():
return boto.connect_glacier(aws_access_key_id=_awsConfig['access_key_id'],
aws_secret_access_key=_awsConfig['secret_access_key'])
def glacierUpload(filePath):
if not os.path.isfile(filePath):
return False
awsConnect = getGlacierConnection()
vault = awsConnect.get_vault(_awsConfig['vault'])
vault.upload_archive(filePath)
return True
제 질문은 이러한 "래퍼"모듈을 작성해야합니까? 이러한 타사 모듈을 사용하는 Pythonic 방식입니까? 이 방법은 나에게 의미가 있지만 이러한 인터페이스를 만들면 내 코드가 덜 이식성 또는 모듈성이되는지, 또는 이러한 여러 가지 다른 모듈을 기본 스크립트 구조에 통합하는 더 좋은 방법이 있는지 궁금하다.
죄송합니다. 귀하의 설명은 다소 추상적입니다. 당신이하고있는 일에 대해 더 잘 이해할 수있는 코드를 보여줄 수 있습니까? –
간단한 예제 인 'boto' 래퍼 모듈을 추가했습니다. – oliakaoil