Sur Google App Moteur (GAE) écrit en Python.
J'essaie d'émettre un message HTTP à l'API de cloud-thect-to-text et à l'utilisation de la source audio URI (Objets de gousset de stockage de Cloud Google Stocket).
J'utilise les en-têtes suivants;
Authorization: BASIC encoded_base64(username:password)
Mais je continue toujours à obtenir une réponse d'erreur ci-dessous:
{"Erreur": {"Code": 403, "Message": "L'appelant anonyme n'a pas de stockage.Object.get Accès au godet_of_secrets/Four_score_seCrets/Four_score_seCrets_Years.flac.", "Statut": "Permission_Dentied"}}
J'ai donc quelques questions;
username:password
Devrais-je utiliser? Est-ce mon email et mon mot de passe de compte GCP? c'est à dire. [email protected]:deluded_fool
Où [email protected]
est le nom d'utilisateur et deluded_fool
est le mot de passe.
J'ai essayé de définir les objets du seau pour être public lisible et bien sûr que l'appel http fonctionne ... mais je préférerais éviter de définir mes objets de seau sur le public lisible.
Voici une demande d'échantillon de courbure:
curl -X POST
https://speech.googleapis.com/v1/speech:longrunningrecognize?key=<secret_api_key> -d @sample.json -H "Content-Type: application/json, Authorization: Basic base64encodedusername:password"
Voici un extrait de mon python code utilisant urlfetch:
url_post = urlfetch.fetch(url=speech_to_text_url_post, payload=json.dumps(data_to_post), method=urlfetch.POST, headers={"Content-Type" : "application/json", "Authorization" : "Basic "+encoded_user_password})
Si vous souhaitez accorder un accès public, vous pouvez rendre les données publiques.
https://cloud.google.com/storage/docs/access-control/making-Data-Public
Mais Le meilleur moyen est générer des URL signées , de cette façon que vous pouvez accorder limiter l'accès à un objet.
https://cloud.google.com/storage/docs/access-control/signed-urls