Google cloud storage gsutil工具中的代理设置

Google cloud storage gsutil工具中的代理设置,google-cloud-storage,Google Cloud Storage,我使用gsutil工具从谷歌存储下载档案。 我使用next CMD命令: python c:\gsutil\gsutil cp gs://pubsite_prod_rev_XXXXXXXXXXXXX/YYYYY/*.zip C:\Tmp\gs 一切正常,但如果我尝试从corporate proxy运行该命令,则会收到错误: Caught socket error, retrying: [Errno 10051] A socket operation was attempted to an un

我使用gsutil工具从谷歌存储下载档案。 我使用next CMD命令:

python c:\gsutil\gsutil cp gs://pubsite_prod_rev_XXXXXXXXXXXXX/YYYYY/*.zip C:\Tmp\gs
一切正常,但如果我尝试从corporate proxy运行该命令,则会收到错误:

Caught socket error, retrying: [Errno 10051] A socket operation was attempted to an unreachable network
我曾多次尝试在.boto文件中设置代理设置,但都没有效果。 有人面临这样的问题吗? 谢谢

请参阅上的“我正在通过代理服务器连接,我需要做什么?”一节


基本上,您需要在.boto文件中配置代理设置,并且您需要确保您的代理允许访问accounts.google.com以及*.storage.googleapis.com。

我相信在Linux(Ubuntu12.04.4 LTS)和gsutils 4.2(今天下载)下忽略代理设置也会遇到同样的问题

我一直在观察主机上的tcpdump,以确认gsutils正试图直接路由到googleips,而不是我的代理服务器

似乎在第一次执行像“gsutil-dls”这样的简单命令时,它会在第一次发布时使用我指定的代理设置.boto,然后切换回尝试直接路由到Google而不是我的代理服务器

然后,如果我按住CTRL-C键并重新运行完全相同的命令,那么将不再使用代理设置。这种行为上的差异使我困惑。如果我等待足够长的时间,我认为它将再次适用于初始请求,因此这表明某种形式的缓存正在发生。我还没有完全了解这种行为,因为我无法预测它何时发生

我还注意到,无论代理设置如何,它总是首先尝试连接端口80上的169.254.169.254。grep显示它被硬编码到oauth2_client.py、test_utils.py、layer1.py和utils.py(在gsutils根目录的不同子目录下)


我尝试设置http_proxy环境变量,但似乎有代码取消了此设置。

昨天刚刚将一项更改合并到github中,修复了一些代理支持。请试用,或者用当前副本覆盖此文件:


谢谢您的回答!但我还是不能让它工作:(你可以登录到你的代理吗?如果可以,如果你从那台机器上运行这个命令会发生什么:traceroute storage.googleapis.com是的,我可以登录。这里是tracert的结果。谢谢!这里。boto proxy设置:
proxy=proxy.domain.ru proxy\u port=8080 proxy\u user=Vorobyev\u proxy\u pass=MyPassword
从你的tracert我可以看到y我们的代理本身能够访问*.storage.googleapis.com,因此我相信该代理正在阻止gsutil通信—OAuth2请求(到accounts.google.com)或GCS API请求(到storage.googleapis.com)。您的代理配置是否需要列出允许连接的网络的白名单?是否已按照上述疑难解答链接中的说明将所有Google IP地址范围添加到此白名单?读取我的调试输出(gsutils-d ls)更深入地说,我注意到它在我的/tmp/文件夹中创建了一个oauth缓存文件。如果我删除该文件并重新运行“gsutils-d ls”,那么它将对POST/o/oath2/token使用我的代理设置,接收一个响应(因为它使用了代理),但当它继续发出GET请求时,代理将不再使用(通过观察tcpdump进行验证)因此,它将继续重试并报告“捕获套接字错误,重试:[Errno 101]网络不可访问”(与OP的错误略有不同。哇!谢谢!我会试试!不,它没有改变任何内容:(如果运行“gstuil-d ls”,它是否也会触发相同的错误?此外,在该输出中,是否会出现“proxy:”行?