查看、更新和删除文件夹

本页面介绍了如何使用 Google Cloud 控制台、Google Cloud CLI 或 API 查看文件夹详细信息、更新文件夹设置和删除文件夹。了解如何修改文件夹显示名称,以及如何管理组织层次结构中的文件夹位置。

列出文件夹并查看文件夹详细信息

如需列出文件夹或查看特定文件夹的元数据(例如其显示名称、父 ID 和生命周期状态),您必须拥有文件夹查看者角色 (roles/resourcemanager.folderViewer) 或 Organization Viewer 角色 (roles/resourcemanager.organizationViewer)。

控制台

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

  2. 资源列表以表格形式显示您的层次结构。选择您的组织资源。

  3. 点击组织名称旁边的箭头可展开树状视图并查看其子文件夹。

  4. 如需执行移动、删除或查看设置等操作,请点击相应资源所在行末尾的操作

  5. 使用资源列表顶部的过滤条件栏按名称、ID 或标签搜索资源。

使用项目选择器

使用顶部导航栏中的项目选择器将有效上下文切换到特定项目或文件夹。

  1. 在 Google Cloud 控制台的顶部导航栏中,点击项目选择器。 此下拉菜单位于 Google Cloud 徽标旁边。

  2. 在随即显示的对话框中,从下拉菜单中选择您的组织,以过滤结果。

  3. 浏览层次结构或搜索要切换到的项目或文件夹。 点击此选择器中的资源会更改您的全局上下文,从而影响其他服务页面(例如 Compute Engine 或 Cloud Storage)中显示的资源。

gcloud

如需获取某个文件夹的详细信息,请使用 resource-manager folders describe 命令。

gcloud resource-manager folders describe FOLDER_ID

FOLDER_ID 替换为您要查看的文件夹的 ID。

如需列出组织资源的子文件夹,请使用 resource-manager folders list 命令。

gcloud resource-manager folders list \
    --organization ORGANIZATION_ID

ORGANIZATION_ID 替换为要查看的子文件夹列表所属的组织资源的 ID。

如需列出文件夹资源的子文件夹,请使用 resource-manager folders list 命令。

gcloud resource-manager folders list \
    --folder FOLDER_ID

FOLDER_ID 替换为要查看的子文件夹列表所属的文件夹资源的 ID。

如需列出组织资源或文件夹下的项目,请使用 projects list 命令和 filter 实参。

gcloud projects list \
    --filter=" parent.id: 'RESOURCE_ID' "

RESOURCE_ID 替换为要查看的子项目列表所属的组织或文件夹资源的 ID。

REST

获取文件夹的 curl 请求:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID

FOLDER_NAME 替换为文件夹名称,例如 folders/123

列出文件夹的 curl 请求:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v3/folders?parent=PARENT_NAME

PARENT_NAME 替换为您要在其中创建文件夹的父资源的名称,例如 organizations/123folders/123

更新文件夹

如需更新文件夹的显示名称,您必须拥有该文件夹的文件夹编辑者角色 (roles/resourcemanager.folderEditor) 或 Folder Admin 角色 (roles/resourcemanager.folderAdmin)。

控制台

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

  2. 点击组织名称旁边的箭头可展开树状视图并查看其子文件夹。

  3. 在要更新的文件夹所在的行中,点击该行末尾的操作菜单,然后点击设置

  4. 输入新文件夹名称,然后点击保存

gcloud

如需更新文件夹的显示名称,请执行以下操作:

gcloud resource-manager folders update FOLDER_ID --display-name="NEW_DISPLAY_NAME"

替换以下内容:

  • FOLDER_ID:您要更新的文件夹的 ID。
  • NEW_DISPLAY_NAME:文件夹的新显示名称。

REST

在使用任何请求数据之前,请先进行以下替换:

  • FOLDER_ID: Google Cloud 文件夹 ID
  • NEW_DISPLAY_NAME:文件夹的新显示名称

HTTP 方法和网址:

PATCH https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName

请求 JSON 正文:

{
  "displayName": "NEW_DISPLAY_NAME"
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID?updateMask=displayName" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "operations/fc.1234567890abcdef",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperationMetadata",
    "displayName": "NEW_DISPLAY_NAME",
    "operationType": "UPDATE",
    "resourceName": "folders/FOLDER_ID"
  },
  "done": false
}

将文件夹移动到另一个文件夹

如要将一个文件夹移动到另一个文件夹,则源文件夹和目标文件夹都必须具有 resourcemanager.folders.move 权限。

控制台

在控制台中,将文件夹移动到其他文件夹的过程与移动项目类似。

  1. 在 Google Cloud 控制台中,打开“管理资源”页面。

    打开 Google Cloud 控制台

  2. 从页面左上角的组织下拉列表中选择您的组织资源。
  3. 点击文件夹所在行,从项目和文件夹列表中选择文件夹。
  4. 点击行中的选项菜单(垂直省略号),然后点击移动
  5. 点击浏览,选择文件夹的目标移动文件夹。
  6. 点击移动

gcloud

如需在组织资源下移动文件夹,请在 Google Cloud CLI 中运行以下命令:

gcloud resource-manager folders move FOLDER_ID \
    --organization=PARENT_ID

替换以下内容:

  • FOLDER_ID:要移动的文件夹的 ID。
  • PARENT_ID:父组织资源的 ID。

要将文件夹移动到另一个文件夹,请运行以下命令:

gcloud resource-manager folders move FOLDER_ID \
    --folder=PARENT_ID

替换以下内容:

  • FOLDER_ID:要移动的文件夹的 ID。
  • PARENT_ID:父级组织资源或文件夹的 ID。

REST

请求 JSON:

request_json= '{
   destinationParent: "folders/DESTINATION_FOLDER_ID"
}'

移动文件夹 curl 请求:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders/DISPLAY_NAME:move

替换以下内容:

  • DESTINATION_FOLDER_ID:您要在其中移入另一个文件夹的文件夹的 ID,例如 98765
  • DISPLAY_NAME:所移动文件夹的显示名,例如“My Awesome Folder”。

移动文件夹响应:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "DISPLAY_NAME",
    "operationType": "MOVE"
  }
}

获取操作 curl 请求:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fm.1234567890

获取操作响应:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "DISPLAY_NAME",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "DISPLAY_NAME",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

删除文件夹

如需删除文件夹,您必须拥有该文件夹的“文件夹编辑者”角色 (roles/resourcemanager.folderEditor) 或“Folder Admin”角色 (roles/resourcemanager.folderAdmin)。

控制台

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

    在 Google Cloud 控制台中,前往“管理资源”页面。

  2. 点击组织名称旁边的箭头可展开树状视图并查看其子文件夹。

  3. 在要删除的文件夹所对应的行中,点击该行末尾的 操作菜单,然后点击删除

  4. 在确认对话框中,输入文件夹 ID 或名称以进行确认,然后点击删除

gcloud

如需删除文件夹,请运行以下命令:

gcloud resource-manager folders delete FOLDER_ID

替换以下内容:

  • FOLDER_ID:要删除的文件夹的 ID。

REST

在使用任何请求数据之前,请先进行以下替换:

  • FOLDER_ID: Google Cloud 文件夹 ID

HTTP 方法和网址:

DELETE https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://cloudresourcemanager.googleapis.com/v3/folders/FOLDER_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "operations/fc.1234567890abcdef",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperationMetadata",
    "operationType": "DELETE",
    "resourceName": "folders/FOLDER_ID"
  },
  "done": false
}

其他信息

删除文件夹后,该文件夹会进入软删除状态,保留期限为 30 天,之后会被永久删除(即硬删除)。

软删除状态:在 30 天的保留期限内,相应文件夹会被标记为待删除,并且不再处于有效状态。您无法在已软删除的文件夹中创建新项目或子文件夹。

硬删除状态:30 天后, Google Cloud 永久移除相应文件夹及其元数据。此操作无法撤消。

恢复:如果您不小心删除了某个文件夹,可以在 30 天内使用 gcloud resource-manager folders undelete 命令或 API 将其恢复。

前提条件和限制条件

  • 文件夹必须为空:您无法删除仍包含有效项目或子文件夹的文件夹。您必须先移动或删除所有子资源。
  • 所需权限:如需删除或恢复文件夹,您必须拥有文件夹编辑者 (roles/resourcemanager.folderEditor) 或 Folder Admin (roles/resourcemanager.folderAdmin) 角色。

如需搜索与指定查询匹配的文件夹,请使用 gcloud alpha resource-manager folders search,并通过 --query 标志传递条件。搜索范围是用户拥有查看权限的所有文件夹。

gcloud alpha resource-manager folders search --query="name:vij*"
<table output showing the folders with names starting from vij eg. vijeta, vijay-folder>

gcloud alpha resource-manager folders search --query="state:DELETE_REQUESTED"
<table output showing folders for which delete has been requested>

可以使用 gcloud folders search 命令显示用户拥有查看权限的所有文件夹。

gcloud folders search
<table output showing all viewable folders>

后续步骤