小编Jam*_*ing的帖子

匿名调用者没有 storage.objects.get

在用 Python 编写的 Google App Engine (GAE) 上。

我正在尝试向 cloud-speech-to-text api 发布 http 帖子并使用 URI 音频源(Google Cloud Storage Bucket Objects)。

我正在使用以下标题;

Authorization: BASIC encoded_base64(username:password)
Run Code Online (Sandbox Code Playgroud)

但我仍然不断收到以下错误响应:

{ "error": { "code": 403, "message": "匿名来电者没有 storage.objects.get 访问 bucket_of_secrets/four_score_seven_years.flac.", "status": "PERMISSION_DENIED" } }

所以我有几个问题;

  1. BASIC Authorization Header 在 Google HTTP API 中工作吗?
  2. username:password应该使用什么?是我的 GCP 帐户电子邮件和密码吗?IEhandsome_dude@gmail.com:deluded_fool

哪里handsome_dude@gmail.com是用户名,哪里是deluded_fool密码。

我已经尝试将存储桶对象设置为公共可读,当然 http 调用有效……但我宁愿避免将存储桶对象设置为公共可读。

这是一个示例 Curl 请求:

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" 
Run Code Online (Sandbox Code Playgroud)

这是我使用 urlfetch 的 …

google-app-engine http-headers urlfetch google-cloud-storage google-cloud-platform

16
推荐指数
2
解决办法
4万
查看次数

BigQuery 更新如何获取更新的行数

我正在使用 Google Cloud Functions 连接到 Google Bigquery 数据库并更新一些行。云函数是使用 Python 3 编写的。

每当我通过该函数运行更新 dml 时,我都需要帮助弄清楚如何获取结果消息或更新/更改的行数。有任何想法吗?

from google.cloud import bigquery

def my_update_function(context,data):

    BQ = bigquery.Client()
    query_job = BQ.query("Update table set etc...")
    rows = query_job.result()
    return (rows)

Run Code Online (Sandbox Code Playgroud)

我知道行总是作为 _emptyrowiterator 对象返回。我可以通过什么方式获得结果或结果消息?文档说我必须从 bigquery 作业方法中获取它。但是好像想不通。

python-3.x google-bigquery google-cloud-functions

5
推荐指数
1
解决办法
1947
查看次数