Skip to main content

用于下载和上传数据到 Google Drive 内容的轻量级模块

项目描述

GitHub 许可证 派皮 PyPI - Python 版本 每月下载量

一个轻量级且易于使用的 Python 库,用于从 Google Drive 上传和下载内容。

作者

阿比纳夫·阿南德

<nav class="contents" id="contents" role="doc-toc">

内容

</nav>

1它是什么

[回到顶部]

Google Drive 是最常用的云存储平台。需要一些最小但有效的工具来将内容传输到 Drive 和从 Drive 传输是很重要的!

已经存在许多这样的库,其中Pydrive是最令人惊叹的。Pydrive 有很多功能,但它缺少某些主要功能。该库的目标是以易于使用且满足用户需求的方式解决批量上传/下载功能。

2特点

[回到顶部]

  • 在驱动器中的任何位置上传文件夹,保持与本地相同的目录结构。

  • 将文件夹从 Drive 中的任何位置下载到 PC 中的任何位置,并保持与 Drive 中相同的目录结构

  • 用不到 5 行代码下载或上传整个目录。

  • 可以承受轻微的网络中断。

  • 批量上传/下载变得容易。

  • 最小的依赖。

  • 便于使用。

  • 快速地!

  • 返回JSON对象

  • 支持
    • 操作系统支持:Linux、Windows、Mac

    • 语言支持:Python 2.x、3.x

3安装

[回到顶部]

3.2选项 2:从源代码安装(仅在必须时)

$ git clone https://github.com/ab-anand/ZDrive.git
$ cd ZDrive/
$ pip install -r requirements.txt
$ python setup.py install

注意:如果您的权限被拒绝,那么 $ sudo python setup.py install应该可以解决这个问题

4用法

[回到顶部]

4.1初始设置

  • 按照文章获取您的 drive-api 凭据。

  • 拥有clients-secret.json 后,将其重命名为credentials.json并将其放在您将运行脚本的同一文件夹中。

4.2下载器

  • Downloader()允许您从驱动器下载文件夹/文件。

  • 也可以指定下载文件的输出位置。

  • Downloader()在从 Drive 下载时保持相同的目录树结构,从而方便阅读。

  • Google Drive 是一种语义(也称为基于标签)文件系统,这意味着它存储文件不是基于文件的位置,而是基于 ID。

  • 语义文件系统允许您拥有多个具有相同名称的文件,并使一个文件出现在多个位置。

  • 因此,要在 Drive 中执行与文件/文件夹相关的任何操作,我们需要文件/文件夹的 ID。

  • ZDrive允许您检索驱动器中存在的文件/文件夹列表及其 ID。

  • Downloader()还使用多处理来加速下载过程。

  • 使用下载器()

>>> from zdrive import Downloader
>>> output_directory = "/home/abhinav/Documents"
>>> d = Downloader()
>>> folder_id = 'XXXX-YYYY-ZZZZ'
>>> d.downloadFolder(folder_id, destinationFolder=output_directory)
  • 如果未指定destinationFolder,则Downloader()将创建一个名为drive_content的默认文件夹,并在那里下载内容。

  • 此外,如果指定的destinationFolder不存在,Downloader()将首先创建文件夹并执行下载。

4.3上传者

  • Uploader()允许您将文件夹/文件从本地 PC 上传到驱动器。

  • 可以从本地 PC 内的任何指定位置进行上传。

  • 数据可以在驱动器的根级别或驱动器中的任何特定文件夹中上传。

  • 如果互联网出现轻微中断(约 10-15 秒),上传将暂停,一旦互联网连接稳定。上传将恢复。

  • Uploader()在从本地 PC 上传到 Drive 时也保持完全相同的目录树结构。

  • 要上传的子目录的级别由max_depth参数决定,如下例所示。

  • 默认情况下,max_depth = 5

  • 使用上传器()

>>> from zdrive import Uploader
>>> input_directory = "/home/abhinav/Downloads"
>>> u = Uploader()
>>> parent_folder_id = u.createFolder(name="Data")
>>> result = u.uploadFolder(input_directory, max_depth=3, parentId=parent_folder_id)
>>> print(result)

'{
    "files":
        {
            "/Users/abhinavanand/Downloads/test/def.pdf": "1pJNIu-0oyzaUgjLvnf6-3mk81iwLBXyS"
        },
    "folders":
        {
        "/Users/abhinavanand/Downloads/test/test-level-1":
            {
                "files":
                {
                    "/Users/abhinavanand/Downloads/test/test-level-1/abc.pdf": "1YwZs__92yzWdM2e7Nc2atF5lzLnyYV9i"
                },
                "folders": {},
                "id": "1zzh_hGImg94SnzrMC8LdH1vgbO3LMksD"
            }
        }
}'
  • 如果没有指定parentId,则Uploader()会将内容从本地 PC 上传到 Drive 中的 ROOT 级别。

5贡献

[回到顶部]

详情请参考投稿页面

6错误

[回到顶部]

请在问题跟踪器上报告错误

7许可证

[回到顶部]

使用 ♥ 由Abhinav AnandMIT 许可下构建©

您可以在http://abhinav.mit-license.org/找到许可证的副本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ZDrive-2.1.5.tar.gz (8.6 kB 查看哈希

已上传 source

内置分布

ZDrive-2.1.5-py3-none-any.whl (9.9 kB 查看哈希

已上传 py3