aws_s3_bucket_object
Provides a S3 bucket object resource.
Example Usage
Uploading a file to a bucket
resource "aws_s3_bucket_object" "object" {
bucket = "your_bucket_name"
key = "new_object_key"
source = "path/to/file"
etag = "${md5(file("path/to/file"))}"
}
Encrypting with KMS Key
resource "aws_kms_key" "examplekms" {
description = "KMS key 1"
deletion_window_in_days = 7
}
resource "aws_s3_bucket" "examplebucket" {
bucket = "examplebuckettftest"
acl = "private"
}
resource "aws_s3_bucket_object" "examplebucket_object" {
key = "someobject"
bucket = "${aws_s3_bucket.examplebucket.bucket}"
source = "index.html"
kms_key_id = "${aws_kms_key.examplekms.arn}"
}
Argument Reference
The following arguments are supported:
bucket
- (Required) The name of the bucket to put the file in.key
- (Required) The name of the object once it is in the bucket.source
- (Required) The path to the source file being uploaded to the bucket.content
- (Required unlesssource
given) The literal content being uploaded to the bucket.acl
- (Optional) The canned ACL to apply. Defaults to “private”.cache_control
- (Optional) Specifies caching behavior along the request/reply chain Read w3c cache_control for further details.content_disposition
- (Optional) Specifies presentational information for the object. Read wc3 content_disposition for further information.content_encoding
- (Optional) Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read w3c content encoding for further information.content_language
- (Optional) The language the content is in e.g. en-US or en-GB.content_type
- (Optional) A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.storage_class
- (Optional) Specifies the desired Storage Class for the object. Can be either “STANDARD
”, “REDUCED_REDUNDANCY
”, or “STANDARD_IA
”. Defaults to “STANDARD
”.etag
- (Optional) Used to trigger updates. The only meaningful value is${md5(file("path/to/file"))}
. This attribute is not compatible withkms_key_id
kms_key_id
- (Optional) Specifies the AWS KMS Key ID to use for object encryption. This value is a fully qualified ARN of the KMS Key. If usingaws_kms_key
, use the exportedarn
attribute:
kms_key_id = "${aws_kms_key.foo.arn}"
Either source
or content
must be provided to specify the bucket content.
These two arguments are mutually-exclusive.
Attributes Reference
The following attributes are exported
id
- thekey
of the resource supplied aboveetag
- the ETag generated for the object (an MD5 sum of the object content).version_id
- A unique version ID value for the object, if bucket versioning is enabled.
See the source of this document at Terraform.io