是否有任何Terraform模块可在存储桶(GCP)中创建文件夹

Jos*_*dez 0 google-cloud-platform terraform

是否有用于在存储桶(GCP)中创建文件夹的Terraform模块?也就是说,我已经知道,使用google_storage_bucket模块,我们可以在GCP中创建GCS存储桶。但是,有什么方法可以使用terraform在存储桶(GCP)中创建文件夹吗?

谢谢,

Him*_*mal 5

因此,您的问题的快速答案是:是的。您可以使用Terraform有效地在存储桶中创建一个空的“目录”。这是如何做:

resource "google_storage_bucket" "storage_bucket" {
  name          = "my-really-awesome-test-bucket"
  location      = "us-east4"

  project       = "my-really-awesome-project"
}

resource "google_storage_bucket_object" "content_folder" {
  name          = "empty_directory/"
  content       = "Not really a directory, but it's empty."
  bucket        = "${google_storage_bucket.storage_bucket.name}"
}
Run Code Online (Sandbox Code Playgroud)

请注意,您正在创建一个在名称末尾带有/的对象。内容无处不在,因为模块需要它。现在,当您登录GCP控制台时,您会在存储桶中看到一个空的“目录”,并且可以将新对象上传到其中。

但是,您还应该了解其他一些信息。Google云存储使用平面文件系统。这意味着,当您将对象上载到服务时,您实际上并没有创建目录结构并将文件存储在其中。相反,您将使用整个路径(例如:'/ bucket_name / directory1 / directory2 / filename')作为整个文件名来创建一个文件。实际上比这更技术性,但这是一个粗略的解释。

  • 几周前,我和我的队友遇到了一个用例,这非常有帮助,所以我不会认为它毫无意义。 (3认同)
  • 我不认为它毫无意义。我登录到 GCP 控制台并创建了一个存储桶。在存储桶浏览器中,可以选择创建“文件夹”。我创建了一个名为“abc”的文件夹。这导致创建了一个名为“abc/”的对象。如果我们再看这里... https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork 我们看到“规则 4”适用。似乎对我有用(意见)。 (2认同)