使用Python的Google云存储

使用Python的Google云存储,python,google-app-engine,google-cloud-storage,Python,Google App Engine,Google Cloud Storage,我根据手册为谷歌云存储设置了所需的环境。 我已经安装了“gsutil”并设置了所有路径。 但是,当我尝试运行下面的代码时,我的gsutil工作得非常好 #!/usr/bin/python import StringIO import os import shutil import tempfile import time from oauth2_plugin import oauth2_plugin import boto # URI scheme for Google Cloud Sto

我根据手册为谷歌云存储设置了所需的环境。 我已经安装了“gsutil”并设置了所有路径。 但是,当我尝试运行下面的代码时,我的gsutil工作得非常好

#!/usr/bin/python

import StringIO
import os
import shutil
import tempfile
import time
from oauth2_plugin import oauth2_plugin

import boto

# URI scheme for Google Cloud Storage.
GOOGLE_STORAGE = 'gs'
# URI scheme for accessing local files.
LOCAL_FILE = 'file'

uri=boto.storage_uri('sangin2', GOOGLE_STORAGE)

try:
    uri.create_bucket()
    print "done!"
except boto.exception.StorageCreateError, e:
    print "failed"
它给出了“403访问被拒绝”错误

因为我是新手,所以我很难弄明白为什么。 有人能帮我吗?
谢谢。

boto库应自动查找并使用您的$HOME/.boto文件。需要检查的一件事是:确保您正在使用的项目被设置为旧版访问的默认项目(在API控制台上,单击“存储访问”,并验证它是否显示“这是旧版访问的默认项目”)。当我的设置不正确,并且遵循您引用的createbucket示例时,我也会得到一个403错误,但是,这在gsutil中对您有效,但在直接使用boto时无效是没有意义的

实例化存储uri对象时,请尝试添加“debug=2”,如下所示:

uri = boto.storage_uri(name, GOOGLE_STORAGE, debug=2)

这将在stdout上生成一些额外的调试信息,然后您可以将这些信息与类似的工作gsutil示例的调试输出进行比较(通过gsutil-D mb)。

您在Google API控制台中激活了Google存储吗?您在哪里设置了oauth客户机id、客户机机密等,您需要使用它对Google服务进行身份验证?是的。我想我是在安装gsutil时这样做的,它工作正常。但是,上面的代码给了我“403禁止”错误。我按照指示设置了python路径(export PYTHONPATH=${PYTHONPATH}:$HOME/gsutil/boto:$HOME/gsutil),但它仍然会给我带来问题
uri = boto.storage_uri(name, GOOGLE_STORAGE, debug=2)