2016-10-22 3 views
1

Ich versuche, die Natural Language Processing API von Google mit Google Cloud Shell und Cloud Storage einzurichten.Google Cloud Shell und Cloud Storage - Die Berechtigung zum Zugriff auf die GCS-Adresse wird verweigert

Mein Problem ist, halte ich diesen Fehler, wenn ich den Code an dem speziellen Eimer Objekt zeigen:

{ 
    "error": { 
    "code": 401, 
    "message": "Permission to access the GCS address is denied.", 
    "status": "UNAUTHENTICATED", 
    "details": [ 
     { 
     "@type": "type.googleapis.com/google.rpc.BadRequest", 
     "fieldViolations": [ 
      { 
      "field": "document.gcs_content_uri", 
      "description": "Permission to access the GCS address is denied." 

Dies ist der Code Ich verwende:

curl -s -X POST -H "Content-Type: application/json" --data-binary @requestb.json https://language.googleapis.com/v1beta1/documents:analyzeEntities?key=${NL_ 
API_KEY} 

Ich bin der Besitzer des Cloud-Kontos und haben Zugriff auf alle Projekte. Gibt es etwas, das mir hier fehlt?

Der API-Aufruf funktioniert gut mit Cloud Shell, wenn ich das Objekt auf "Public" setzen.

Jede Hilfe zu diesem würde wirklich geschätzt werden!

Dank

Antwort

1

Problem gelöst!

Ich erkannte, dass ich den Speicherort der Schlüsseldatei des Dienstkontos nicht übergeben hatte. Wie so:

gcloud auth activate-service-account --key-file=service-account-key-file 

tat ich dies, indem Sie den Schlüssel aus dem Berechtigungsnachweis-Bereich herunterladen, dann reuploading es in die Google Cloud Shell Kommandozeile (es hat einen schönen Code-Editor ‚Orion‘ genannt, die Sie jeweils anzeigen und bearbeiten können hochgeladene Datei).

Ich folgte dann ab Schritt 3 here

ich den Code in Schritt 4 geändert, um die API zu einem Objekt in einem Eimer in Google Cloud Storage, wie so zu senden:

curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer xxxxxxxxxxxauth-tokenxxxxxxxxxxxxxx" --data-binary @requestb.json https://language.googleapis.com/v1beta1/documents:analyzeEntities?key=${NL_API_KEY} 

den obigen '@ requestb.json' ist ein andere Textdatei ich Google Cloud Shell hochgeladen, die folgenden json Informationen enthielten:

{ 
    "document":{ 
    "type":"PLAIN_TEXT", 
    "gcsContentUri": "gs://<bucket-name>/<object-name>" 
    } 
} 

Und es hat funktioniert!

Mein Ziel war es, eine .txt-Datei, die eine abgetastete BBC News Artikel und kehrte diese Antwort enthält:

{ 
    "entities": [ 
    { 
     "name": "Mosul", 
     "type": "LOCATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Mosul" 
     }, 
     "salience": 0.16690882, 
     "mentions": [ 
     { 
      "text": { 
      "content": "ir Mo", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "ar Mo", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "of Mo", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "to Mo", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "US", 
     "type": "LOCATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/United_States" 
     }, 
     "salience": 0.058336213, 
     "mentions": [ 
     { 
      "text": { 
      "content": "he", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "y,", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "Iraqi", 
     "type": "LOCATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Iraq" 
     }, 
     "salience": 0.0219927, 
     "mentions": [ 
     { 
      "text": { 
      "content": "An Ir", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "ng Ir", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "h, I", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "Qusay Hamid Kadhem", 
     "type": "PERSON", 
     "metadata": {}, 
     "salience": 0.01995722, 
     "mentions": [ 
     { 
      "text": { 
      "content": "r, Qusay Hamid Kad", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "Qaraqosh", 
     "type": "LOCATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Bakhdida" 
     }, 
     "salience": 0.018237775, 
     "mentions": [ 
     { 
      "text": { 
      "content": "of Qaraq", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": ".\r\nQaraq", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "AFP", 
     "type": "ORGANIZATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Agence_France-Presse" 
     }, 
     "salience": 0.0049931784, 
     "mentions": [ 
     { 
      "text": { 
      "content": "ld ", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "IS", 
     "type": "ORGANIZATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Islamic_State_of_Iraq_and_the_Levant" 
     }, 
     } 
     "salience": 0.0046183467, 
     "mentions": [ 
     { 
      "text": { 
      "content": "he", 
      "beginOffset": -1 
      } 
     }, 
     { 
      "text": { 
      "content": "ut", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "Reuters", 
     "type": "ORGANIZATION", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Reuters" 
     }, 
     "salience": 0.0041254032, 
     "mentions": [ 
     { 
      "text": { 
      "content": ".\r\nReut", 
      "beginOffset": -1 
      } 
     } 
     ] 
    }, 
    { 
     "name": "Christian", 
     "type": "PERSON", 
     "metadata": { 
     "wikipedia_url": "http://en.wikipedia.org/wiki/Christian" 
     }, 
     "salience": 0.0016911785, 
     "mentions": [ 
     { 
      "text": { 
      "content": "st Christ", 
      "beginOffset": -1 
      } 
     } 
     ] 
    } 
    ], 
    "language": "en" 

Mein Plan ist

mehrere Antworten auf Big Query und dann Data Visualization als pro diesen großen article bis jetzt senden
Verwandte Themen