2014-10-01 1 views
2

Java 코드를 사용하여 S3에 개체를 업로드하는 프로젝트를 진행 중입니다. 내 구현을 제한하는 몇 가지 외부 제한 사항이 있으며 S3가 내가 수행하려고하는 것을 지원하는지 확실하지 않습니다.페이로드를 해싱하지 않고 v4 인증을 사용하여 S3에 PUT 개체 제출

제한 사항은 다음과 같습니다

  • 사용 V4 인증
  • 헤더 인증, 매개 변수
  • REST API를하지
  • 페이로드가 해시되지 AWS 자바 SDK (NO SHA-256)
  • 쿼리하지

마지막 요구 사항은 저장소에서 직접 데이터를 스트리밍하는 하드웨어 지원이 있으므로 drivin g 코드는 결코 데이터에 닿지 않습니다.

분명히 쿼리 매개 변수 인증을 사용하면 페이로드 해시 대신 'UNSIGNED-PAYLOAD'를 사용할 수 있지만 헤더 기반 인증은 사용할 수 없습니다.

제 질문은 REST API, v4 서명 및 데이터 자체에 해시가없는 (SHA-256 또는 기타) 객체를 S3에 업로드 할 수있는 방법이 있는지 여부입니다.

감사합니다.

+1

, 그것은 나쁜 생각처럼 들린다. 코드를 통해 데이터를 스트리밍 할 수 있고 멀티 파트 업로드를 수행 할 수 있다면 충분히 쉽습니다. 스트림의 크기를 모르는 상태에서 각 업로드 된 "파트"에 대해 즉시 계산할 수있는 md5 체크섬 만 제공하면됩니다. 전진. –

답변

1

아니, 아마존의 포럼이 게시물에 따르면 :

재 : https://forums.aws.amazon.com/message.jspa?messageID=573632

UNSIGNED 페이로드 만 쿼리 문자열 인증을 사용할 수 있습니다. 인증 헤더 인증을 사용하는 경우 사용할 수 없습니다. 옵션을 사용하면 청크 분할 전송을 사용할 수 있으므로 해시를 위해 버퍼링 할 수있는 것보다 작은 데이터 청크에 대해 해시를 계산해야합니다. 또한 3050 년 12 월 2014 이후에 만들어진 영역에서는 작동하지 않지만 이전 Signature V2를 계속 사용할 수 있습니다. 위에서 언급 한 바와 같이 만 월 30 일 이전에 생성 된 엔드 포인트, 헤더 방법을 사용하여 V2 서명이 작업을 수행 할 수 있지만, 마치

, 2014

참조 : http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationStringToSign

관련 문제