Terraform GCP:只需使用google_storage_bucket_对象上传文件名即可

Terraform GCP:只需使用google_storage_bucket_对象上传文件名即可,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,我想将文件从本地文件系统上载到新的GCP存储桶。我想在存储桶中为本地文件创建一个新目录 我可以成功地做到这一点,但是Terraform会在存储桶中创建完整的本地文件路径。我只想创建GCP bucket,在GCP bucket中创建新目录,并上传本地文件 variable "bucket_name" { default = "my-bucket-gfsdfdye32421" } variable "my_files" { default = ["local/docs/red.txt", "

我想将文件从本地文件系统上载到新的GCP存储桶。我想在存储桶中为本地文件创建一个新目录

我可以成功地做到这一点,但是Terraform会在存储桶中创建完整的本地文件路径。我只想创建GCP bucket,在GCP bucket中创建新目录,并上传本地文件

variable "bucket_name" {
  default = "my-bucket-gfsdfdye32421"
}
variable "my_files" {
  default = ["local/docs/red.txt", "local/docs/blue.txt"]
}


resource "google_storage_bucket" "bucket" {
  name          = "${var.bucket_name}"
  force_destroy = true
}

resource "google_storage_bucket_object" "default" {
  count  = "${length(var.my_files)}"
  name   = "new_gcp_dir/${element(var.my_files, count.index)}"
  source = "${element(var.my_files, count.index)}"
  bucket = "${google_storage_bucket.bucket.name}"
}
上述代码在我的GCP Bucket中创建以下文件结构:

my-bucket / new_gcp_dir / local / docs / red.txt
my-bucket / new_gcp_dir / local / docs / blue.txt
我希望GCP文件结构改为如下:

my-bucket / new_gcp_dir / red.txt
my-bucket / new_gcp_dir / blue.txt

文件之间的本地路径是否不同?否则,您可以在
source
参数中硬编码dirname,并将其从变量中完全删除。目录名不会更改。但是bucket和目录需要在部署时创建。我会试试你的建议。不同文件的本地路径不同吗?否则,您可以在
source
参数中硬编码dirname,并将其从变量中完全删除。目录名不会更改。但是bucket和目录需要在部署时创建。我试试你的推荐。