gpt4 book ai didi

python - 使用 Python 列出 Google Cloud Storage 存储桶

转载 作者:行者123 更新时间:2023-11-28 19:56:16 24 4
gpt4 key购买 nike

我正在学习本教程:https://developers.google.com/storage/docs/gspythonlibrary并在尝试列出我的存储桶时遇到几个错误。

我已经下载了 gsutil 并将其添加到我的 PYTHONPATH 中,如下所示:

/home/nicolasalvo/tools/gsutil/third_party/boto:/home/nicolasalvo/tools/gsutil

我还执行过:

pip install -U oauth2client

我尝试运行的代码是:

import StringIO
import os
import shutil
import tempfile
import time
from gslib.third_party.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('', GOOGLE_STORAGE)
for bucket in uri.get_all_buckets():
print bucket.name

我得到的第一个错误是:

File "<stdin>", line 1, in <module>
File "/home/nicolasalvo/tools/gsutil/gslib/third_party/oauth2_plugin/oauth2_plugin.py", line 3, in <module>
import oauth2_client
File "/home/nicolasalvo/tools/gsutil/gslib/third_party/oauth2_plugin/oauth2_client.py", line 33, in <module>
import socks

我已经修复了手动更改:

import socks

成为

import httplib2.socks

现在我面临的错误是:

File "/home/nicolasalvo/tools/gsutil/third_party/boto/boto/connection.py", line 876, in _mexe
request.authorize(connection=self)
File "/home/nicolasalvo/tools/gsutil/third_party/boto/boto/connection.py", line 377, in authorize
connection._auth_handler.add_auth(self, **kwargs)
File "/home/nicolasalvo/tools/gsutil/gslib/third_party/oauth2_plugin/oauth2_plugin.py", line 22, in add_auth
self.oauth2_client.GetAuthorizationHeader()
File "/home/nicolasalvo/tools/gsutil/gslib/third_party/oauth2_plugin/oauth2_client.py", line 325, in GetAuthorizationHeader
return 'Bearer %s' % self.GetAccessToken().token
File "/home/nicolasalvo/tools/gsutil/gslib/third_party/oauth2_plugin/oauth2_client.py", line 288, in GetAccessToken
token_exchange_lock.acquire()
NameError: global name 'token_exchange_lock' is not defined

我试图在使用它之前声明全局对象,但没有帮助。

此外,我希望我应该能够使用 Google 提供的云存储库,而无需手动修复。

我正在运行 Python 2.7.3

非常感谢任何帮助

最佳答案

这对我有用:

import threading
from gslib.third_party.oauth2_plugin import oauth2_client
oauth2_client.token_exchange_lock = threading.Lock()

关于python - 使用 Python 列出 Google Cloud Storage 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com