Skip to content

Data Source: aws_s3_object#

The S3 object data source allows access to the metadata and optionally (see below) content of an object stored inside S3 bucket.

~> Note The content of an object (body field) is available only for objects which have a human-readable Content-Type (text/* and application/json). This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata.

Example Usage#

data "aws_s3_object" "example" {
  bucket = "tf-example"
  key    = "test.txt"
}

Argument Reference#

The following arguments are supported:

  • bucket - (Required) The name of the bucket to read the object from.
  • key - (Required) The full path to the object inside the bucket
  • version_id - (Optional) Specific version ID of the object returned (defaults to latest version).

Attributes Reference#

Supported attributes#

In addition to all arguments above, the following attributes are exported:

  • body - Object data (see limitations above to understand cases in which this field is actually available)
  • cache_control - Specifies caching behavior along the request/reply chain.
  • content_disposition - Specifies presentational information for the object.
  • content_encoding - 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.
  • content_language - The language the content is in.
  • content_length - Size of the body in bytes.
  • content_type - A standard MIME type describing the format of the object data.
  • etag - ETag generated for the object (an MD5 sum of the object content in case it's not encrypted)
  • expiration - If the object expiration is configured (see how to configure lifecycle), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
  • id - The full path to the object inside the bucket.
  • last_modified - Last modified date of the object in RFC1123 format (e.g., Mon, 02 Jan 2006 15:04:05 MST)
  • metadata - A map of metadata stored with the object in S3.
  • version_id - The latest version ID of the object returned.
  • website_redirect_location - If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. S3 stores the value of this header in the object metadata.
  • tags - A map of tags assigned to the object.

-> Note: Terraform ignores all leading /s in the object's key and treats multiple /s in the rest of the object's key as a single /, so values of /index.html and index.html correspond to the same S3 object as do first//second///third// and first/second/third/.

Unsupported attributes#

~> Note These attributes may be present in the terraform.tfstate file but they have preset values and cannot be specified in configuration files.

The following attributes are not currently supported:

bucket_key_enabled, expires, force_destroy, kms_key_id, object_lock_legal_hold_status, object_lock_mode, object_lock_retain_until_date, server_side_encryption, sse_kms_key_id, storage_class.