Manage OSS buckets
Use Terraform to create an Object Storage Service (OSS) bucket and configure properties such as static website hosting, logging, and lifecycle rules.
Run the sample code in this tutorial with a single click. Run now
Prerequisites
Before you begin, ensure that you have:
An Alibaba Cloud account and an AccessKey pair. Go to the AccessKey pair page of the Alibaba Cloud Management Console to create or view your AccessKey pair
Terraform installed and configured. See Install and configure Terraform in the local PC and Create resources with Terraform
Procedure
-
Create a bucket.
-
Create a terraform.tf file in your working directory with the following content.
NoteCreate a separate working directory for each Terraform project.
NoteRun this sample code with a single click. Run now
provider "alicloud" { alias = "bj-prod" region = "cn-beijing" } resource "random_uuid" "default" {} resource "alicloud_oss_bucket" "bucket-new" { storage_class = "Standard" bucket = "bucket-auto-2024${random_uuid.default.id}" } resource "alicloud_oss_bucket_acl" "default" { bucket = alicloud_oss_bucket.bucket-new.bucket acl = "public-read" } output "buckname"{ value = alicloud_oss_bucket.bucket-new.bucket } -
Run terraform apply. Output similar to the following indicates the bucket was created.
NoteOSS bucket names must be globally unique. If
ErrorCode=BucketAlreadyExistsis returned, change the bucket name and retry.alicloud_oss_bucket.bucket-new: Creating... alicloud_oss_bucket.bucket-new: Creation complete after 2s [id=bucket-20200310-1] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
-
-
Configure bucket properties.
-
Create a resource.tf file in your working directory with the following content.
NoteTerraform loads all .tf files in the directory, so you can split configurations across files.
resource "alicloud_oss_bucket" "bucket-attr" { provider = alicloud.bj-prod bucket = "bucket-2-${random_uuid.default.id}" # Default homepage and 404 page of the static website website { index_document = "index.html" error_document = "error.html" } # Path where access logs are stored logging { target_bucket = alicloud_oss_bucket.bucket-new.id target_prefix = "log/" } # Object lifecycle rule lifecycle_rule { id = "expirationByDays" prefix = "path/expirationByDays" enabled = true expiration { days = 365 } } # Hotlink protection settings referer_config { allow_empty = true referers = ["http://www.aliyun.com", "https://www.aliyun.com", "http://?.aliyun.com"] } } -
Run terraform apply. Output similar to the following indicates the properties were configured.
alicloud_oss_bucket.bucket-attr: Creating... alicloud_oss_bucket.bucket-attr: Creation complete after 2s [id=bucket-20200310-2] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
-