2014-01-14 5 views
1

개체에 '세대'(버전 번호)를 지정할 때 Google Cloud Storage (GCS)에 대한 GET 요청에 서명하는 데 문제가 있습니다. 세대를 거치지 않고 URL에 서명하면 매력과 GET 요청이 정상적으로 작동합니다. 그러나 경로에 # 생성을 추가 할 때 GCS 서버는 서명 된 URL을 얻으려고 할 때 항상 "액세스 거부"를 반환합니다. 예를 들어Google 클라우드 저장소의 서명 된 URL로 버전 관리 사용

,이 URL 경로에 서명하는 것은 잘 작동 :

https://storage.googleapis.com/BUCKET/OBJECT#1360887697105000

이 URL 경로에 서명

https://storage.googleapis.com/BUCKET/OBJECT

나에게 거부 된 액세스를 제공합니다 간결함과 개인 정보 보호를 위해 Signature, Expires, GoogleAccessId 매개 변수가 포함 된 실제 서명 된 URL을 생략했습니다. 또한 버킷, 객체 및 생성이 gsutil을 사용하여 올바른지 확인했습니다.

GCS는 '생성'번호로 특정 객체 버전에 대한 서명 된 URL 액세스를 허용합니까? 특정 버전에 액세스 할 때 URL 서명 절차가 다릅니 까?

+2

이-인 gsutil 호환 developers.google.com/storage/docs/reference-headers#generation하지만, XML API를 나타내는 것을 요구한다 :

문서 참조 용으로 여기에 쿼리 매개 변수 (예 : storage.googleapis.com/BUCKET/OBJECT?generation=1360887697105000)를 생성합니다. 이 구문을 사용하여 실패했는지 확인할 수 있습니까? 문서는 참조 용입니다. https://developers.google.com/storage/docs/reference-headers#generation –

+0

그게 효과가 있습니다! 대단히 감사합니다 !! 나는 이것을 답으로 표시 할 수있는 곳이 어디인지 확신 할 수는 없지만 문제가 완전히 수정되었습니다. –

+0

문제와 관련된 또 다른 근본적인 문제가있는 경우 처음에 주석을 사용했습니다. 나는 그것을 대답으로 지금 추가했습니다. –

답변

1

사용중인 URL은 gsutil과 호환되지만 XML API에서는 검색어 매개 변수 (storage.googleapis.com/BUCKET/OBJECT?generation=1360887697105000처럼 보임)를 사용하여 생성을 표시해야합니다.

그것은 당신이 사용하고있는 URL과 같은
관련 문제