Ich arbeite an einer Webanwendung als Schnittstelle zu Google Cloud Storage (GCS).Zugriff auf Google Cloud Storage über Webanwendung, immer 403
Ich verwende einen Back-End-Dienst, um die Liste der Dateien, die ich auf GCS gespeichert habe, und ihre URL mit der JSON-API abzurufen und diese an meine Webanwendung zurückzugeben. Allerdings war ich nicht wirklich in der Lage, die Dateien über diese URL zu laden, die immer mit 403 verboten zurückkam.
Ich bin mir nicht sicher, wie die GCS-Authentifizierung hinter der Szene funktioniert und ob es möglich ist, den Zugriff auf die Webanwendung direkt zu gewähren. Ich bin nicht sicher, wie ich Anwendungsauthentifizierungsinformationen über HTTP-Anfrage anhängen könnte. Was ich weiß ist, dass ich das über den Backend-Dienst tun kann, aber aus Gründen der Einfachheit frage ich mich, ob es möglich ist, damit umzugehen. Eines der Dinge, die ich ausprobiert habe, ist das Hinzufügen der Webanwendungsdomäne (die über den Referrer in der HTTP-Anforderung gesendet wird) in ACL zu diesem Bucket, der überhaupt nicht funktioniert.
Und danke, was @Brandon unten hingewiesen hat. Es ist in Ordnung, jedem, der Zugriff auf die Anwendung hat, den Inhalt des GCS anzuzeigen, da es sich um eine interne App handelt, und ich habe ihre Authentifizierung bereits beim ersten Dienst der Webanwendung überprüft. mit gcloud (Ihre python document ist wirklich gut)
====
Lösung
Ich landete die signedUrl verwenden, die in 5 Minuten ablaufen und ich empfehle mit GCS interagieren. Danke nochmal für die gründliche Antwort!
Wessen Berechtigungen möchten Sie verwenden?Ihre eigenen Berechtigungen oder die Berechtigungen der einzelnen Nutzer Ihrer Anwendung (mit eigenen Google-Konten)? –
Vielen Dank @Brandon. Ich möchte die Anwendungserlaubnis der Einfachheit halber verwenden, da es eine interne App ist. Außerdem weiß ich, dass es möglich ist, dass ich einen Backend-Dienst habe (wenn sie auch auf GAE gehostet werden), um Zugang mit dem Appid zu erbitten. Aber ich möchte mich wirklich nur auf das Frontend verlassen. – yeelan