Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当需要登录时,使用python从cloud.google.com下载公共文件_Python_Python 3.x_Google Cloud Platform_Urllib_Pycurl - Fatal编程技术网

当需要登录时,使用python从cloud.google.com下载公共文件

当需要登录时,使用python从cloud.google.com下载公共文件,python,python-3.x,google-cloud-platform,urllib,pycurl,Python,Python 3.x,Google Cloud Platform,Urllib,Pycurl,我正在尝试下载twitter错误信息/选举完整性数据集,网址为: 但它需要登录。我没有使用谷歌应用引擎,只是在我的笔记本电脑上运行python 3。我编写了以下代码来下载这些文件: for a_url in download_urls: filename = os.path.join(data_path, os.path.basename(a_url)) if not os.path.isfile(filename): #urllib.request.urlr

我正在尝试下载twitter错误信息/选举完整性数据集,网址为:

但它需要登录。我没有使用谷歌应用引擎,只是在我的笔记本电脑上运行python 3。我编写了以下代码来下载这些文件:

for a_url in download_urls:
    filename = os.path.join(data_path, os.path.basename(a_url))

    if not os.path.isfile(filename):
        #urllib.request.urlretrieve(a_url, filename)
        with open(filename, 'wb') as f:
            c = pycurl.Curl()
            c.setopt(c.URL, a_url)
            c.setopt(c.WRITEDATA, f)
            c.setopt(c.CAINFO, certifi.where())
            c.perform()
            c.close()
有没有一种方法可以让我在下载这些文件的同时避免登录到我的google帐户? 还是有一种简单的方法可以通过python登录?
几乎所有的在线信息都是如何在GAE环境中实现这一点,我并没有尝试连接到bucket。

提到的URL表示文件是从中提供的。由于需要登录,这意味着不需要对象

为这些文件提供服务的应用程序使用以用户为中心的OAuth 2.0流。发件人:

云存储用于API身份验证和 授权。身份验证是确定身份的过程 客户的身份

  • 以用户为中心的流程允许应用程序从最终用户获取凭据。用户登录以完成身份验证
有没有一种方法可以在下载这些文件的同时避免登录到我的google帐户?

这里的答案应该是否定的。否则它就是一个bug——你可以绕过谷歌云安全;)

我找不到
pycurl
的详细信息,但是
curl
本身并没有将OAuth 2.0列为受支持的。发件人:

HTTP

  • 身份验证:基本、摘要、NTLM(*9)和协商(SPNEGO)(*3)到服务器和代理
因此,我认为您将无法使用
pycurl
下载文件。至少不是直接的(可能通过代理?)

一种可能的替代方法是在脚本中使用(作为任何其他外部进程启动):

  • 您首先要使用获取身份验证令牌
  • 然后启动脚本,其中的
    gsutil
    执行将使用以前获得的身份验证令牌
我认为可以在独立模式下安装和使用
gsutil
,而不需要云SDK,但我没有这样使用它。也许你的案子值得调查一下。发件人:

gsutil config
命令适用于安装了gsutil的用户 作为一个独立的工具

gsutil config
命令获取Google的访问凭据 云存储并写入一个boto/gsutil配置文件,其中包含 获得的凭证以及许多其他凭证 配置可控值


上面提到的URL表示这些文件来自。由于需要登录,这意味着不需要对象

为这些文件提供服务的应用程序使用以用户为中心的OAuth 2.0流。发件人:

云存储用于API身份验证和 授权。身份验证是确定身份的过程 客户的身份

  • 以用户为中心的流程允许应用程序从最终用户获取凭据。用户登录以完成身份验证
有没有一种方法可以在下载这些文件的同时避免登录到我的google帐户?

这里的答案应该是否定的。否则它就是一个bug——你可以绕过谷歌云安全;)

我找不到
pycurl
的详细信息,但是
curl
本身并没有将OAuth 2.0列为受支持的。发件人:

HTTP

  • 身份验证:基本、摘要、NTLM(*9)和协商(SPNEGO)(*3)到服务器和代理
因此,我认为您将无法使用
pycurl
下载文件。至少不是直接的(可能通过代理?)

一种可能的替代方法是在脚本中使用(作为任何其他外部进程启动):

  • 您首先要使用获取身份验证令牌
  • 然后启动脚本,其中的
    gsutil
    执行将使用以前获得的身份验证令牌
我认为可以在独立模式下安装和使用
gsutil
,而不需要云SDK,但我没有这样使用它。也许你的案子值得调查一下。发件人:

gsutil config
命令适用于安装了gsutil的用户 作为一个独立的工具

gsutil config
命令获取Google的访问凭据 云存储并写入一个boto/gsutil配置文件,其中包含 获得的凭证以及许多其他凭证 配置可控值


您是否可以包括在尝试下载文件时遇到的错误?是否有API调用来获取此数据而不是在每个文件上使用pycurl?您是否可以包括在尝试下载文件时遇到的错误?是否有API调用来获取此数据而不是在每个文件上使用pycurl?