【问题标题】:how to add custom header upload to Google Cloud Storage?如何将自定义标头上传添加到 Google Cloud Storage?
【发布时间】:2020-04-12 20:24:19
【问题描述】:

我使用 Flask 创建 API,但在创建自定义标头以上传到我的 Google Cloud Storage 时遇到上传问题。仅供参考,我的服务器上的权限详细信息与我的本地计算机相同,用于测试将图像上传到 GCS、管理存储和管理对象存储,我的本地计算机上没有问题。但是当我在我的服务器上 curl 或测试上传到我的 Google Cloud Storage 存储桶时,响应总是相同的:

"rc": 500, "rm": "403 POST https://storage.googleapis.com/upload/storage/v1/b/konxxxxxx/o?uploadType=multipart: ('Request failed with status code', 403, 'Expected one of', )"

我使用自定义标头在邮递员中进行测试: upload_key=asjaisjdaozmzlaljaxxxxx

我像这样卷曲: url --location --request POST 'http://14.210.211.xxx:9001/koxxx/upload_img?img_type=img_x' --header 'upload_key: asjaisjdaozmzlaljaxxxxx' --form 'img_file=@/home/user/image.png'

并且我已通过“gcloud auth list”确认我在服务器上使用的登录数据是正确的,并且与我的本地计算机相同。

【问题讨论】:

    标签: flask google-cloud-platform google-cloud-storage flask-restful custom-headers


    【解决方案1】:

    您有权限错误,使用服务帐户方法修复它,简单明了。

    • 创建服务帐号

      gcloud iam 服务帐户创建\ $SERVICE_ACCOUNT_NAME \ --display-name $SERVICE_ACCOUNT_NAME

    • 为您的服务帐号添加权限

      gcloud 项目 add-iam-policy-binding $PROJECT_NAME \ --角色角色/bigtable.user \ --member serviceAccount:$SA_EMAIL $SA_EMAIL 是这里的服务帐户。您可以使用:

      SA_EMAIL=$(gcloud iam 服务帐户列表\ --filter="displayName:$SERVICE_ACCOUNT_NAME" \ --format='value(email)')

    • 将服务帐户下载到目标 $SERVICE_ACCOUNT_DEST 并将其保存到变量 $KEY

    export KEY=$(gcloud iam service-accounts keys create $SERVICE_ACCOUNT_DEST --iam-account $SA_EMAIL)

    【讨论】:

    • 谢谢你的回答,但我已经按照上面的方法尝试过,结果还是一样,我想再次尝试:1. 将 SA 更改为项目所有者 2. 使用上传不记名密钥,我从“gcloud auth print-access-token” 3 中获得了密钥。因为我使用的是使用 json 文件的服务帐户。我已经使用 json 文件激活了 SA 名称。使用“gcloud auth activate-service-account SA name --key-file = / path / *.json --project = project-id 4. 和 gcloud init 我选择连接 json 文件的 SA 名称。那没有” t 解决问题:((
    • 您的评论中有一些我不明白的地方; “使用承载密钥上传,我从“gcloud auth print-access-token”获得密钥是什么意思?您应该使用服务帐户生成的密钥文件作为不记名密钥,而不是来自“gcloud auth print-access-token”
    • 谢谢,我解决了我的问题。我只是在提取并重新编译代码后导出文件 json。我在我的 env 文件中将变量文件 json 设置为静态。文件 json 是来自 google 的凭据服务帐户。谢谢。
    猜你喜欢
    • 2020-04-17
    • 2023-03-08
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多