文件夹是仅包含元数据的文件,可用于整理 Google 云端硬盘中的文件。 它们具有以下属性:
- 文件夹是一种 MIME 类型
application/vnd.google-apps.folder的文件,没有扩展名。 - 别名
root可用于在提供文件 ID 的任何位置引用根文件夹。
如需详细了解云端硬盘文件夹限制,请参阅文件和 文件夹限制。
本指南介绍了如何执行一些与文件夹相关的基本任务。
创建文件夹
如需创建文件夹,请使用 files.create()
方法,并指定 mimeType 为 application/vnd.google-apps.folder 和 name。
以下代码示例展示了如何使用客户端库创建文件夹:
Java
Python
Node.js
PHP
.NET
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "FOLDER_NAME",
"mimeType": "application/vnd.google-apps.folder"
}'
替换以下内容:
- ACCESS_TOKEN:应用的 OAuth 2.0 令牌。
- FOLDER_NAME:要创建的文件夹的名称。
在特定文件夹中创建文件
如需在特定文件夹中创建文件,请使用 files.create() 方法,并在文件的
parents 属性中指定文件夹 ID。
parents 属性包含文件的父文件夹的 ID。在顶级文件夹或任何其他文件夹中创建文件时,可以使用 parents 属性。
一个文件只能有一个父文件夹。不支持指定多个父文件夹。如果未指定 parents 字段,文件将直接放置在用户的“我的云端硬盘”文件夹中。
以下代码示例展示了如何使用客户端库在特定文件夹中创建文件:
Java
Python
Node.js
PHP
.NET
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "photo.jpg",
"parents": [
"FOLDER_ID"
]
}'
替换以下内容:
- ACCESS_TOKEN:应用的 OAuth 2.0 令牌。
- FOLDER_ID:要在其中创建文件的文件夹的 ID。
在文件夹之间移动文件
如需移动文件,您必须更新 parents 属性的 ID。
如需为现有文件添加或移除父文件夹,请结合使用 files.update() 方法和 addParents 或
removeParents 查询参数。
一个文件只能有一个父文件夹。不支持指定多个父文件夹。
以下代码示例展示了如何使用客户端库在文件夹之间移动文件:
Java
Python
Node.js
PHP
.NET
curl
curl -X PATCH 'https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=NEW_PARENT_ID&removeParents=PREVIOUS_PARENT_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
替换以下内容:
- FILE_ID:要移动的文件的 ID。
- NEW_PARENT_ID:要将文件 移入的文件夹的 ID。
- PREVIOUS_PARENT_ID:要从中移除文件的父文件夹的逗号分隔列表。
- ACCESS_TOKEN:应用的 OAuth 2.0 令牌。
文件和文件夹限制
云端硬盘文件和文件夹有一些存储空间限制。
用户内容项限制
每个用户最多可以通过该账号创建 5 亿项内容。 达到限制后,用户将无法再在云端硬盘中创建或上传内容。他们仍然可以查看和修改现有内容。如需再次创建文件,用户必须永久删除一些内容或使用其他账号。如需了解详情,请参阅将文件和文件夹移至回收站或删除文件和文件夹。
计入此限制的对象包括:
- 用户在云端硬盘中创建或上传的内容
- 用户创建但现在归他人所有的内容
- 回收站中的内容
- 快捷方式
- 第三方快捷方式
不计入此限制的对象包括:
- 永久删除的内容
- 与用户共享但归他人所有的内容
- 归用户所有但由他人创建的内容
尝试添加超过 5 亿项内容会返回
activeItemCreationLimitExceeded
HTTP 状态代码响应。
请注意,服务账号无法拥有任何文件。相反,它们必须将文件和文件夹上传到共享云端硬盘,或使用 OAuth 2.0 代表人类用户上传内容。
文件夹内容项限制
用户的“我的云端硬盘”中的每个文件夹最多可包含 50 万项内容。 此限制不适用于“我的云端硬盘”的根文件夹。计入此限制的内容包括:
- 文件夹
- 文件。所有文件类型,无论文件所有权如何。
- 快捷方式。一个快捷方式计为文件夹中的一项内容,即使它指向的内容并不在该文件夹中。如需了解详情,请参阅创建指向云端硬盘文件的快捷方式。
- 第三方快捷方式。一个快捷方式计为文件夹中的一项内容,即使它指向的内容并不在该文件夹中。如需了解详情,请参阅 创建指向应用存储的内容的快捷方式文件。
如需详细了解文件夹限制,请参阅 Google 云端硬盘中的 文件夹限制。
文件夹深度限制
用户的“我的云端硬盘”包含的嵌套文件夹不能超过 100 层。这意味着,子文件夹不能存储在深度超过 99 层的文件夹下。此限制仅适用于子文件夹。MIME 类型不是 MIME 类型 的子
文件
application/vnd.google-apps.folder不受此限制。
例如,在下图中,一个新文件夹可以嵌套在编号为 99 的文件夹内,但不能嵌套在编号为 100 的文件夹内。不过,编号为 100 的文件夹可以像任何其他云端硬盘文件夹一样存储文件:
尝试添加超过 100 层文件夹会返回
myDriveHierarchyDepthLimitExceeded
HTTP 状态代码响应。