2012-08-08 5 views
0

2 개의 응용 프로그램 AB으로 구성된 분산 시스템이 있습니다.

B는 기본 워크 플로가 실행되는 동안 A 파일을 생성하고 업로드 할 때 A의 특정 API를 호출합니다. S3에 업로드됩니다. 은 업로드하기 전에 파일에 대한 클라이언트 측 암호화를 수행합니다. 에 대한 API 응답 B은 업로드 된 파일의 버킷 + 링크 위치입니다.
Amazon S3 초보자 질문

나중에 나중에 S3에서 파일을 다운로드하고 싶습니다.

이이 일을 가지 방법이 있습니다 - 그것은 업로드하는 데 사용되는 AWS 키를 알아야 할 필요가있는 경우에 B의 끝 부분에있는 다운로드 기능을 구현

  1. 가.
  2. download 기능 B 있도록 B 업로드하는 데 사용하는 AWS 키의 지식을 가질 필요가 없습니다 것 노출 되세요.



옵션 2 일을 가야하는 올바른 방법처럼 보인다.
제 이해가 맞습니까? 아니면 세 번째로 합리적인 방법이 있습니까?

+1

AmazonS3Client에서, 당신 이미 자신의 질문에 대답했습니다. 옵션 2, A가 뭔가 B 요구 사항을 가지고 있다면, A는 게이트 키퍼 여야하며 필요한 것만 공개해야합니다. (B, 고객에게 제공하기 위해 제공 할 데이터). – hometoast

답변

0

쿼리 문자열 인증을 사용하여 "중간 집"을 고려할 수 있습니다. 기본적으로 B가 파일을 다운로드하려고 할 때 A에게 다운로드 링크를 요청하는 요청을합니다. 그러면 A가 시간 제한된 pre-signed request URL을 생성 한 다음 B가 S3에서 직접 파일을 다운로드하는 데 사용할 수 있습니다.

당신은 귀하의 질문에 "자바"태그했듯이

나는 당신이 필요로하는 방법 인 경우에 AWS 자바 SDK, 사용하고있는 가정합니다 generatePresignedUrl 정보의 제한된 양을 바탕으로