从JSON文件在Google驱动器上生成文件的工具

drive-files-gen的Python项目详细描述


驱动文件生成器

从JSON文件在googledrive上生成文件夹和文档的工具。在

JSON文件树

JSON文件描述了要在googledrive上创建的文件树。在

一个例子可以帮助你理解它的结构。在

{"my-drive":{"docs":["My Google Docs"],"sheets":3,"folders":{"ZORRO":{"forms":1,"sites":["Google Site #1","Google Site #2"],"folders":{"my last folder":{}}}}}}
  1. outter对象必须有一个条目。键是要在其中创建文件树的文件夹的ID 或者使用特殊值my-drive,如果您希望它成为驱动器的根目录。共享驱动器ID也可以传递。在

  2. 在文件夹中,可以指定要创建的不同Google驱动器元素。来自 列表,或特殊的“文件夹”条目(如果要创建子文件夹)。在

  3. 文件夹由其名称(=JSON key)标识。根元素是my-drive或现有的 谷歌硬盘ID

  4. 要指定要创建哪些Google文档、工作表、站点(等等),您可以告诉您想要创建多少个 他们将有一个名称的时间戳("docs": 3将创建3个Google文档-目前不可能用于文件夹) 或者您可以指定一个名称列表("docs": ["one", "two", "three"])。在

  5. 如果您想创建一个空文件夹,只需添加一个带有空dict的条目("my last folder": {}

谷歌硬盘文件类型

以下是您可以创建的文件类型。左侧是您放入JSON文件中的内容, 右边是googledrive中对应的mime类型。在

^{pr2}$

证书

目前,该脚本没有打包,也没有作为应用程序发布。所以你必须创建自己的GCP Oauth 已安装应用程序(this procedure)的客户端ID。
下载JSON文件并将其传递到命令行。在

脚本将请求在googledrive中写入的许可。范围授权过程完成后,它 如果(且仅当)您已使用文件传递--store-creds,则将您的刷新令牌+访问令牌保存到文件中 命令行的路径。 否则每次跑步都会征求你的同意。在

运行脚本

usage: drive_files_gen.py [-h] [--store-creds STORE_CREDS] client_id_file json_file

Generate Google Drive folders and documents from a JSON file.

positional arguments:
  client_id_file        the client id JSON file, downloaded from GCP
  json_file             the Drive file tree, in JSON format

optional arguments:
  -h, --help            show this help message and exit
  --store-creds STORE_CREDS
                        if you want to store your creds (refresh + access token) on your filesystem, give it a file path

测试脚本

我用pytest做了一些单元测试。它需要同时具有JSON Oauth客户机文件和 一个有效的JSON凭据文件(带有刷新令牌+访问令牌)。 您将在test_main.py中看到我引用了一个test_config包,这是我存储JSON文件路径的地方。在

要测试它,只需运行pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 401在API URL上带有声明性Http客户端,并带有@Secured(SecurityRule.IS_ANONYMOUS)注释   java如何在Android中创建计时器?   Java8WebStart安全弹出窗口   java会通过以下两种方式导致堆空间耗尽吗?   java项目调度GA:染色体的高效数据结构   java Apache POI:如何在Excel文件中插入列   java在JRE系统库中每个jar扮演什么角色   java如何在抽象类中执行@mock(不是注入mock)   java如何使用opensearch和Lucene发送搜索查询?   java在ApachePOI中处理空列   java广播接收器未接收到目标   java错误ELF类:ELF类64(可能原因:体系结构字宽不匹配)   java调用Web服务(SSL)时出错   用于iot集线器设备固件更新的java Rest API   通过xslt将xml转换为文本文件时引发java异常   Java linux打印问题   Java XML转换器重复行   java从另一个类的方法将数组导入mainActivity类   多线程选择与Java交互的线程   我想在java程序中打印以下格式的文件: