Warm tip: This article is reproduced from stackoverflow.com, please click
amazon-s3 amazon-web-services terraform

how to create multiple folders inside an existing AWS bucket

发布于 2020-04-03 23:38:35

How to create a multiple folders inside an existing bucket using terraform. example: bucket/folder1/folder2

resource "aws_s3_bucket_object" "folder1" {
    bucket = "${aws_s3_bucket.b.id}"
    acl    = "private"
    key    = "Folder1/"
    source = "/dev/null"
}
Questioner
user_01_02
Viewed
98
ThomasVdBerge 2018-04-29 04:33

While the answer of Nate is correct, this would lead to a lot of code duplication. A better solution in my opinion would be to work with a list and loop over it.

Create a variable (variable.tf file) that contains a list of possible folders:

variable "s3_folders" {
  type        = "list"
  description = "The list of S3 folders to create"
  default     = ["folder1", "folder2", "folder3"]
}

Then alter the piece of code you already have:

resource "aws_s3_bucket_object" "folders" {
    count   = "${length(var.s3_folders)}"
    bucket = "${aws_s3_bucket.b.id}"
    acl    = "private"
    key    = "${var.s3_folders[count.index]}/"
    source = "/dev/null"
}