2013-09-06 2 views
0

Cloud-Storage에서 버킷을 만들고 Full-Control로 my-gae-app (GAE)에 대한 권한을 부여 받았습니다. 또한 my-gae-app에 대한 양동이에서 CORS (Cross-Origin Resource Sharing)를 구성했습니다. my-gae-app를 소유자로 설정하기 위해 버킷 기본 ACL을 설정했습니다.Google-App-Engine 및 클라우드 저장소 액세스가 거부되었습니다.

my-gae-app 응용 프로그램에서 사용자가 my-bucket에 pdf/image를 업로드 할 수있는 양식이 있습니다. (나는 GCS 클라이언트 라이브러리 함수를 사용한다.) 업로드 프로세스는 잘 동작했다. 업로드 버튼을 클릭하면 파일이 오류없이 버킷에 기록되고 클라우드 스토리지 콘솔에서 파일이 있는지 확인할 수있다. 나는 파일 (객체) 권한을 검사했다. my-app-gae가 소유자임을 알 수있다.

업로드 된 파일을 표시하는 다른 양식이 작동하지 않습니다. 심지어 "<"img src = "https://storage.cloud.google.com/mybucket/my-uploaded-image.jpg"/ ">" 콘솔에 "GET ... 403 금지됨 ". pdf를 표시 할 페이지에 "Access Denied Access Denied"가 표시됩니다.

Cloud Storage 콘솔에서 개체를 "공개적으로 공유"로 표시하려고했지만 모든 것이 정상적으로 작동합니다. 그러나 이것은 올바른 디자인이 아닙니다. 난 단지가 아닌 공개적으로 내 신세계 - 응용 프로그램에 의해 나의 버킷 액세스 할 수있는 솔루션이 필요합니다?. O (

사람이 어떤 빛 많은 감사를 흘려 주시겠습니까

+0

블룸 스토어를 통해 파일을 업로드하는 동안 양동이 파일에 ** 공개적으로 ** 공유를 프로그래밍 방식으로 설정하여 Google이 지금까지 지식과 정보에 따라 버킷에 액세스 할 수있는 방법을 찾지 못했습니다. –

답변

1

무엇이든 "그 업로드 된 파일을 표시 다른 형태의 "권한이 READ 또는 FULL_CONTROL 권한을 가진 객체에 대한 액세스 제어 목록에 있어야하므로 인증됩니다. 버킷에 생성 한 모든 객체의 경우가되도록하려면 가장 쉬운 방법은 기본값을 설정하는 것입니다 여기에 설명 된 버킷의 객체 액세스 제어 : https://developers.google.com/storage/docs/accesscontrol#default

기본 객체 액세스 제어 세트를 사용하면 기본적으로 READ에 양식을 부여 할 수 있습니다. 양식이 인증하는 사용자/서비스 계정/그룹.

+1

이 답변에 추가하려면 : 태그는 대개 브라우저에서 렌더링되므로 HTTP 요청을하고 GAE 응용 프로그램이 아닌 403 오류가 발생하는 것은 사용자 브라우저입니다. 개체를 공개하지 않으려 고하지만 GAE 응용 프로그램의 사용자가 개체를 볼 수있게하려는 것 같습니다. GAE 애플리케이션이 잠시 후에 만료되는 공개 URL (@ httvis://developers.google.com/storage/docs/accesscontrol#Signed-URLs –

+0

@Travis)을 사용하여 액세스를 위임 할 수 있습니다. 답장을 보내 주셔서 감사합니다. 내 버킷에 대한 기본 액세스 제어를 설정 했으므로 앱 서비스 계정에 FULL_CONTROL 권한이 있습니다. "양식에 기본적으로 READ 권한을 부여하는 방법"을 알 수 있습니까? 더 공유 할 수 있습니까? 도와 주셔서 감사합니다. 대단히 감사합니다. – user2753786

+0

@Brian, 답장을 보내 주셔서 감사 드리며 Signed-URL에 대한 제안을 보내 주시면이 경로를 시도해 보겠습니다 ... – user2753786

관련 문제