用于下载和上传数据到 Google Drive 内容的轻量级模块
项目描述
一个轻量级且易于使用的 Python 库,用于从 Google Drive 上传和下载内容。
- 作者:
阿比纳夫·阿南德
内容
</nav>1它是什么
Google Drive 是最常用的云存储平台。需要一些最小但有效的工具来将内容传输到 Drive 和从 Drive 传输是很重要的!
已经存在许多这样的库,其中Pydrive是最令人惊叹的。Pydrive 有很多功能,但它缺少某些主要功能。该库的目标是以易于使用且满足用户需求的方式解决批量上传/下载功能。
2特点
在驱动器中的任何位置上传文件夹,保持与本地相同的目录结构。
将文件夹从 Drive 中的任何位置下载到 PC 中的任何位置,并保持与 Drive 中相同的目录结构。
用不到 5 行代码下载或上传整个目录。
可以承受轻微的网络中断。
批量上传/下载变得容易。
最小的依赖。
便于使用。
快速地!
返回JSON对象
- 支持
操作系统支持:Linux、Windows、Mac
语言支持:Python 2.x、3.x
3安装
3.1方案一:通过pip安装(推荐)
$ pip install ZDrive
如果您在代理后面
$ pip --proxy [username:password@]domain_name:port install ZDrive
注意:如果找不到命令,则 $ sudo apt-get install python-pip应该修复该问题
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 Anand在MIT 许可下构建©
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。