subcategory | description |
---|---|
Cloud Storage |
Creates a new object inside a specified bucket |
Creates a new object inside an existing bucket in Google cloud storage service (GCS).
ACLs can be applied using the google_storage_object_acl
resource.
For more information see
the official documentation
and
API.
Example creating a public object in an existing image-store
bucket.
resource "google_storage_bucket_object" "picture" {
name = "butterfly01"
source = "/images/nature/garden-tiger-moth.jpg"
bucket = "image-store"
}
Example creating an empty folder in an existing image-store
bucket.
resource "google_storage_bucket_object" "empty_folder" {
name = "empty_folder/" # folder name should end with '/'
content = " " # content is ignored but should be non-empty
bucket = "image-store"
}
The following arguments are supported:
-
bucket
- (Required) The name of the containing bucket. -
name
- (Required) The name of the object. If you're interpolating the name of this object, seeoutput_name
instead. -
metadata
- (Optional) User-provided metadata, in key/value pairs.
One of the following is required:
-
content
- (Optional, Sensitive) Data asstring
to be uploaded. Must be defined ifsource
is not. Note: Thecontent
field is marked as sensitive. To view the raw contents of the object, please define an output. -
source
- (Optional) A path to the data you want to upload. Must be defined ifcontent
is not.
-
cache_control
- (Optional) Cache-Control directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600 -
content_disposition
- (Optional) Content-Disposition of the object data. -
content_encoding
- (Optional) Content-Encoding of the object data. -
content_language
- (Optional) Content-Language of the object data. -
content_type
- (Optional) Content-Type of the object data. Defaults to "application/octet-stream" or "text/plain; charset=utf-8". -
customer_encryption
- (Optional) Enables object encryption with Customer-Supplied Encryption Key (CSEK). [Google documentation about CSEK.](https://cloud.google.com/storage/docs/encryption/customer-supplied-keys) Structure is documented below. -
retention
- (Optional) The object retention settings for the object. The retention settings allow an object to be retained until a provided date. Structure is documented below. -
event_based_hold
- (Optional) Whether an object is under event-based hold. Event-based hold is a way to retain objects until an event occurs, which is signified by the hold's release (i.e. this value is set to false). After being released (set to false), such objects will be subject to bucket-level retention (if any). -
temporary_hold
- (Optional) Whether an object is under temporary hold. While this flag is set to true, the object is protected against deletion and overwrites. -
detect_md5hash
- (Optional) Detect changes to local file or changes made outside of Terraform to the file stored on the server. MD5 hash of the data, encoded using base64. This field is not present for composite objects. For more information about using the MD5 hash, see Hashes and ETags: Best Practices. -
storage_class
- (Optional) The StorageClass of the new bucket object. Supported values include:MULTI_REGIONAL
,REGIONAL
,NEARLINE
,COLDLINE
,ARCHIVE
. If not provided, this defaults to the bucket's default storage class or to a standard class. -
kms_key_name
- (Optional) The resource name of the Cloud KMS key that will be used to encrypt the object.
The customer_encryption
block supports:
-
encryption_algorithm
- (Optional) Encryption algorithm. Default: AES256 -
encryption_key
- (Required) Base64 encoded Customer-Supplied Encryption Key.
-
mode
- (Required) The retention policy mode. EitherLocked
orUnlocked
. -
retain_until_time
- (Required) The time to retain the object until in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
In addition to the arguments listed above, the following computed attributes are exported:
-
crc32c
- (Computed) Base 64 CRC32 hash of the uploaded data. -
md5hash
- (Computed) Base 64 MD5 hash of the uploaded data. -
self_link
- (Computed) A url reference to this object. -
output_name
- (Computed) The name of the object. Use this field in interpolations withgoogle_storage_object_acl
to recreategoogle_storage_object_acl
resources when yourgoogle_storage_bucket_object
is recreated. -
media_link
- (Computed) A url reference to download this object.
This resource provides the following Timeouts configuration options: configuration options:
create
- Default is 4 minutes.update
- Default is 4 minutes.delete
- Default is 4 minutes.
This resource does not support import.