2016-06-15 3 views
0

Google Cloud Storage에서 파일을 읽는 Python Google App Engine 앱이 있는데 로컬 개발 서버 (dev_appserver.py)를 사용하여 오프라인으로 테스트 할 수 있습니다.오프라인 테스트를 위해 GCS를 시뮬레이트하는 방법

또한 here을 기준으로 Google.Apis.Storage.v1.StorageService을 사용하여 App Engine 앱이 검색 할 수 있도록 클라우드 저장소 버킷에 파일을 덤프하는 .NET 도구가 있습니다.

'라이브'클라우드 저장소에 쓰기에 문제가 없지만 dev_appserver.py GCS 시뮬레이터와 통신하도록 StorageService를 설정하면 어떻게하면 라이브 클라우드 서비스를 사용하지 않고 두 도구를 함께 테스트 할 수 있습니까?

또는 .NET 클라이언트 라이브러리와 GAE 로컬 개발 서버 둘 다에서 사용할 수있는 다른 GCS 로컬 디스크 '시뮬레이터'가 있습니까?

답변

0

GAE GCS 에뮬레이션은 github project called appengine-gcs-client을 사용합니다. local_run() 함수 (common.py 내부)에 체크가 포함되어있어 로컬 또는 프로덕션 환경에서 실행 중인지를 API에 알릴 수 있습니다.

로컬에서 실행될 때 gcs-client는 local_api_url()에서 반환 된 에뮬레이션 URL을 사용합니다.

내가 제안 무엇

http://localhost:8080/_ah/gcs

, 해당 지역의 .NET 응용 프로그램에서 위의 URL에 연결을 시도 :이 같은 뭔가를 찾고 끝납니다. 그것은 당신이하고자하는 것을 성취하기에 충분해야합니다.

def local_run(): 
    """Whether we should hit GCS dev appserver stub.""" 
    server_software = os.environ.get('SERVER_SOFTWARE') 
    if server_software is None: 
    return True 
    if 'remote_api' in server_software: 
    return False 
    if server_software.startswith(('Development', 'testutil')): 
    return True 
    return False 


def local_api_url(): 
    """Return URL for GCS emulation on dev appserver.""" 
    return 'http://%s%s' % (os.environ.get('HTTP_HOST'), LOCAL_GCS_ENDPOINT) 

LOCAL_GCS_ENDPOINT = '/_ah/gcs' 
관련 문제