Google cloud platform 是否有任何terraform模块在Bucket(GCP)中创建文件夹

Google cloud platform 是否有任何terraform模块在Bucket(GCP)中创建文件夹,google-cloud-platform,terraform,Google Cloud Platform,Terraform,是否有任何terraform模块在Bucket GCP中创建文件夹? 也就是说,我已经知道,通过模块google_storage_bucket,我们可以在GCP中创建GCS bucket。 但是,有没有办法使用terraform在bucket GCP中创建文件夹 谢谢,所以对你的问题的快速回答是:是的。您可以使用Terraform有效地在bucket中创建一个空目录。以下是方法: resource "google_storage_bucket" "storage_bucket" { name

是否有任何terraform模块在Bucket GCP中创建文件夹? 也就是说,我已经知道,通过模块google_storage_bucket,我们可以在GCP中创建GCS bucket。 但是,有没有办法使用terraform在bucket GCP中创建文件夹


谢谢,

所以对你的问题的快速回答是:是的。您可以使用Terraform有效地在bucket中创建一个空目录。以下是方法:

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}"
}
请注意,您正在创建一个名称末尾带有尾随/的对象。因为模块需要内容,所以内容无处可去,就在那里。现在,当您登录到GCP控制台时,您将看到bucket中的空目录,您可以将新对象上载到其中


但是这里还有其他一些事情你应该知道。谷歌云存储使用平面文件系统。这意味着,当您将对象上载到服务时,您并不是真正创建目录结构并将文件存储在其中。相反,您创建的是一个完整路径的文件,例如:“/bucket\u name/directory1/directory2/filename”作为整个文件名。这实际上比这更具技术性,但这是一个粗略的解释。

因此,对您的问题的快速回答是:是的。您可以使用Terraform有效地在bucket中创建一个空目录。以下是方法:

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}"
}
请注意,您正在创建一个名称末尾带有尾随/的对象。因为模块需要内容,所以内容无处可去,就在那里。现在,当您登录到GCP控制台时,您将看到bucket中的空目录,您可以将新对象上载到其中


但是这里还有其他一些事情你应该知道。谷歌云存储使用平面文件系统。这意味着,当您将对象上载到服务时,您并不是真正创建目录结构并将文件存储在其中。相反,您创建的是一个完整路径的文件,例如:“/bucket\u name/directory1/directory2/filename”作为整个文件名。它实际上比这更具技术性,但这是一个粗略的解释。

对象存储是完全平坦的。没有文件夹。当您在UI中看到文件夹或命令输出时,它只是描述如何向您显示它的元数据。

对象存储是完全平坦的。没有文件夹。当您在UI中看到文件夹或命令输出时,它只是描述如何向您显示它的元数据。

GCS或任何S3兼容存储中都没有文件夹/目录。相反,键可以包含/个字符,然后这些字符会显示为具有目录结构。如果您想将foo/bar/baz写入GCs/S3存储桶,那么您可以在没有foo/bar/existing的情况下完成。阅读了解更多信息。GCS或任何S3兼容存储中都没有文件夹/目录。相反,键可以包含/个字符,然后这些字符会显示为具有目录结构。如果您想将foo/bar/baz写入GCs/S3存储桶,那么您可以在没有foo/bar/existing的情况下完成。阅读更多关于这方面的信息。我不确定这是否特别有助于表明,在毫无意义的情况下,技术上可以做到这一点。你剩下的答案是好的,尽管它可能会通过我的评论等文档链接得到改进。几周前,我的队友和我遇到了一个非常有用的用例,所以我不会说它毫无意义。我不认为它毫无意义。我登录到GCP控制台并创建了一个bucket。在bucket浏览器中,可以选择创建文件夹。我创建了一个名为abc的文件夹。这导致创建了一个名为abc/的对象。如果我们再看看这里。。。我们看到规则4适用。在我看来似乎很有用。我不确定在毫无意义的情况下证明技术上可以做到这一点是否特别有用。你剩下的答案是好的,尽管它可能会通过我的评论等文档链接得到改进。几周前,我的队友和我遇到了一个非常有用的用例,所以我不会说它毫无意义。我不认为它毫无意义。我登录到GCP控制台并创建了一个bucket。在bucket浏览器中,可以选择创建文件夹。我创建了一个名为abc的文件夹。这导致创建了一个名为abc/的对象。如果我们再看看这里。。。我们看到规则4适用。在我看来似乎很有用。