Python Gsutil Google SDK Shell

问题描述

当我从 google sdk Shell 运行命令时,我没有出错:

# login
gcloud auth login
# upload files to bucket : google cloud storage
gsutil cp "My_File_Path" gs://"My_Bucket_Name

当我从 Windows cmd 运行相同的命令时,出现错误AccessDeniedException: 403 Insufficient Permission

我愿意从 windows cmd 运行命令,这样我就可以在我的 python 脚本上使用:

import os
os.system("gcloud auth login")
os.system("gsutil cp 'Path_To_File' gs://'Bucket_Name'")

在 windows cmd 上:os.system("gcloud auth login") 运行没有错误,第二个命令得到错误 AccessDeniedException: 403 Insufficient Permission

解决方法

gcloud auth login 正在生成一个链接,您必须按照该链接对 Coud SDK 进行身份验证。所以它可能可以在没有身份验证错误的情况下运行,因为它只返回一个链接并等待验证码。但运行此 gsutil 需要经过身份验证的 Cloud SDK。

如果您需要使用 Python 上传文件,我认为使用 Python API 更好。 Google 文档中有非常好的 MySQLTuner-perl。如果您想设置 Python API 身份验证,您需要按照此 example 中的说明设置环境变量。

也请看看这个article