0

내가 사용하여 Google 클라우드 스토리지 클라우드 팝/하위 알림을 설정할 수 있었다 :GCS 객체가 서명 된 URL을 통해 업로드 할 때 클라우드 팝/하위로 사용자 정의 데이터를 전송하는 방법

gsutil notification create -t [TOPIC_NAME] -m my-key:my-value -f json gs://[BUCKET_NAME]

내 앱 엔진 객체가 GCS로 업로드 될 때마다 서블릿이 올바르게 메시지를받습니다. 내 객체를 GCS에 서명 된 URL로 업로드합니다.

그러나 서명 된 URL을 사용하여 개체를 업로드 할 때 내 클라이언트에서 맞춤 키 - 값 쌍을 설정하는 방법을 잘 모르겠습니다. 위의 gsutil 명령을 사용하면 key : value 쌍을 설정할 수 있지만 유용하지 않도록 하드 코드합니다. 내 클라이언트에서 키 : 값 쌍을 user : some-user과 같이 설정하고 싶다면 내 서블릿에서 데이터베이스에 쓰기와 같은 몇 가지 추가 앱 엔진 작업을 수행 할 수 있습니다.

here과 같이 metadata 태그에 일부 헤더를 업로드하려고 시도했지만 서블릿의 HttpServletRequest 헤더를 가져 오지 못했습니다.

또한 어떻게 수행할지에 대한 설명이 없으므로 subscriptionUniqueToken도 전송할 수 있습니다.

참고 : Java

답변

0

고유 토큰의 개념을 사용하여 더 이상 대부분의 경우 필요하지 않습니다. 개체 변경 알림은 구성 가능한 끝점에 인증되지 않은 HTTPS 호출을 보내 작업했기 때문에 제공됩니다. 해당 엔드 포인트가 발견되면 악의적 인 사용자도 이러한 호출을 보낼 수 있습니다. 그러나 클라우드 게시/하위 알림은 알려진 서비스 계정으로 주제에 메시지를 게시하며 악의적 인 제 3 자도 해당 주제에 대한 게시 권한을 부여받지 못하면 방해 할 수 없습니다. 원하는 경우 두 번째 보호 메커니즘으로 고유 토큰을 포함 할 수 있지만 일반적으로 필요하지는 않습니다.

"클라이언트 토큰"은 개체 변경 알림과 관련된 기능입니다. Cloud Pub/Sub 통합과 동등한 기능은 사용자 정의 속성 인 "custom_attributes"이며 각 알림에 추가 속성으로 첨부됩니다. 원하는 경우 "unique_token"속성을 추가하고 값을 첨부 할 수 있습니다.

서명 된 URL을 사용하는 경우 사용자 지정 메타 데이터 설정은 x-goog-meta-으로 시작하는 HTTP 헤더로 수행됩니다. 예를 들어, x-goog-meta-stuff: Foo은 "stuff : Foo"와 같은 사용자 지정 특성 쌍을 만듭니다.

+0

@BlueBoy 사용자 지정 데이터를 전달할 때 서명 된 URL을 만들 때 특별한 작업을 수행해야합니까? – Raunak

+0

@ brandon-yarbrough 위의 의견은 무엇입니까? – Raunak

+0

@raunak 예, 맞춤 메타 데이터가 포함 된 요청에 서명 할 때 헤더에 서명을 포함시키고 클라이언트가 제출하도록해야합니다. https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers를 참조하십시오. –