2016-10-22 1 views
1

Я пытаюсь настроить API обработки естественного языка Google с помощью Google Cloud Shell и облачного хранилища.Google Cloud Shell и облачное хранилище - разрешение на доступ к адресу GCS отрицается

Мой вопрос, я получаю эту ошибку, когда я указываю код на конкретном объекте ковшом:

{ 
    "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." 

Это код, я использую:

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

Я владелец учетной записи Cloud и доступ ко всем проектам. Здесь что-то не хватает?

Вызов API отлично работает с облачной оболочкой, если я установил объект в «Public».

Любая помощь по этому вопросу была бы действительно оценена!

Thanks

ответ

1

Проблема решена!

Я понял, что не передал адрес ключевого файла учетной записи службы. Как так:

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

Я сделал это, загрузив ключ из области мандатной, затем reuploading его в командной строке Google Cloud Shell (она имеет хороший редактор кода под названием «Орион», который позволяет просматривать и редактировать каждый загруженный файл).

Я тогда следовал со стадии 3 и далее here

Я изменил код на шаге 4, чтобы отправить API на объект в ведро в Google Cloud Storage, например, так:

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} 

выше @ requestb.json "еще один текстовый файл, я загружен в Google Cloud Shell, который содержит следующую информацию: JSon

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

И это сработало!

Мой объект был файл .txt, содержащий сэмпл статью BBC News и вернулся этот ответ:

{ 
    "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" 

Мой план должен теперь послать несколько ответов на Большой запрос, а затем Визуализация данных в соответствии с этой большой article