如何通过Terraform将对象上传至GCS存储桶的子目录?
如何用Terraform将对象上传到Google Cloud Storage桶的子目录
完全可行。Google Cloud Storage(GCS)并没有真正的物理目录结构,所谓的“子目录”是通过给对象名称添加斜杠分隔的前缀来模拟实现的。你只需要在google_storage_bucket_object资源的name参数中包含完整的路径前缀即可。
修改你的示例代码如下:
resource "google_storage_bucket_object" "picture" { name = "insects/butterfly01" # 加入子目录前缀 source = "/images/nature/garden-tiger-moth.jpg" bucket = "image-store" }
上传完成后,在GCS控制台中该对象会显示在insects“目录”下,实际上这个对象的完整标识是image-store/insects/butterfly01,GCS通过解析对象名称中的斜杠来提供类目录的展示体验。
如果需要批量上传多个文件到同一子目录,可以结合for_each来简化配置:
variable "insect_images" { type = map(string) default = { "garden-tiger-moth" = "/images/nature/garden-tiger-moth.jpg" "monarch-butterfly" = "/images/nature/monarch.jpg" } } resource "google_storage_bucket_object" "insect_photos" { for_each = var.insect_images name = "insects/${each.key}" source = each.value bucket = "image-store" }
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

