【问题标题】:Is there a way to access data from one drive using google colab?有没有办法使用 google colab 从一个驱动器访问数据?
【发布时间】:2021-03-09 07:50:49
【问题描述】:

我已经开始使用 google colab 来训练神经网络,但是我拥有的数据非常大(4GB 和 18GB)。我目前将所有这些数据存储在一个驱动器中,但我的谷歌驱动器上没有足够的空间来传输这些文件。

有没有办法让我直接从 google colab 中的一个驱动器访问数据?

我试过直接从我自己的机器上加载数据,但是我觉得这个过程太费时了,我的机器真的没有足够的空间来存储这些文件。我也尝试在 ? 之后添加 download=1在文件的超链接中但是这不会下载并且只显示超链接。使用 wget 时会产生“错误 403:禁止”。消息。

我希望 google colab 文件下载此压缩文件并从中解压缩数据以进行训练。

【问题讨论】:

  • 我认为这种方法可以节省您的大量时间。首先,将所有数据文件放在一个 zip 文件(.rar 或 .zip)中。您可以在 GitHub 中创建一个私有 repo,然后将 arcive 上传到 repo。在这里,您可以选择查看原始文件。打开那个链接。现在,您可以在 Google Colab 中使用 Python 打开此 url。并提取所有文件。
  • 谢谢,但是这种方法的问题是我的 GitHub 帐户只有 1GB 的空间,而我的一个驱动器上有 1TB 的空间。我希望将来会使用更多数据,因此我希望有一个系统可以在我拥有这些数据时使用。因此,为什么直接从一个驱动器收集数据很重要。
  • @JoshWilde 您是否成功解决了问题并获得了 Colab 对 oneDrive 的访问权限?

标签: onedrive google-colaboratory


【解决方案1】:

好的,这里是下载到colab的方法,选择文件并右键单击onedrive中的下载按钮但立即暂停

然后进入下载界面,右键点击暂停的项目,复制链接地址

!wget --no-check-certificate \
https://public.sn.files.1drv.com/xxx\ 
-O /content/filename.zip

注意:几分钟后会失效

【讨论】:

    【解决方案2】:

    您可以使用OneDriveSDK,可在 PyPi 索引中下载。

    首先,我们将使用以下命令将其安装到 Google Colab 中:

    !pip install onedrivesdk
    

    这个过程太长了,这里不能容纳。您需要先验证自己的身份,然后才能轻松上传/下载文件。

    您可以使用此代码进行身份验证:

    import onedrivesdk 
    
    redirect_uri = 'http://localhost:8080/' client_secret = 'your_client_secret' client_id='your_client_id' api_base_url='https://api.onedrive.com/v1.0/' 
    scopes=['wl.signin', 'wl.offline_access', 'onedrive.readwrite'] 
    http_provider = onedrivesdk.HttpProvider() 
    auth_provider = onedrivesdk.AuthProvider( http_provider=http_provider, client_id=client_id, scopes=scopes) 
    client = onedrivesdk.OneDriveClient(api_base_url, auth_provider, http_provider) 
    auth_url = client.auth_provider.get_auth_url(redirect_uri) 
    
    # Ask for the code 
    print('Paste this URL into your browser, approve the app\'s access.') 
    print('Copy everything in the address bar after "code=", and paste it below.') print(auth_url) 
    code = input('Paste code here: ')  client.auth_provider.authenticate(code, redirect_uri, client_secret)
    

    这将产生一个代码,您需要将其粘贴到浏览器中并再次粘贴到控制台中以进行身份​​验证。

    您可以使用以下方式下载文件:

    root_folder = client.item(drive='me', id='root').children.get() 
    id_of_file = root_folder[0].id client.item(drive='me', id=id_of_file).download('./path_to_file')
    

    【讨论】:

    • 代码不起作用,给出“raw_input 不存在”错误
    • 安装 onedrivesdk 时出错。 ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    • @Joe 尝试运行 !pip install "onedrivesdkgithub.com/OneDrive/onedrive-sdk-python/issues/166
    【解决方案3】:

    仅供下载,下载文件夹:

    • cliget 在 Firefox 中(wget 对我不起作用,但 curl 很好)
    • curlwget 在 Chrome 中(抱歉,没试过,我不使用 Chrome)

    使用 cliget,您只需在 Firefox 中安装插件,然后开始下载文件夹。 (不必真正完成。)然后在附加组件的图标上,单击 cliget,然后选择 curl,然后复制(-粘贴)创建的命令。

    注意:这些不是“安全”的方法,可能不应该用于敏感内容

    (可能其他 OneDrive 文件夹会保持安全,但我不确定。请确认。)

    解压可以使用unzip命令。

    这个问题已经过去一年了,但我把这个留在这里,给其他人。 :)

    编辑:

    出于某种原因,对于许多小文件来说,它似乎真的很慢。 (我不知道为什么。)另外(使用 OneDrive)它似乎只可靠到几 (2-3) GB... :(

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多