class Aws::S3::Types::PutObjectRequest

@note When making an API call, you may pass PutObjectRequest

data as a hash:

    {
      acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
      body: source_file,
      bucket: "BucketName", # required
      cache_control: "CacheControl",
      content_disposition: "ContentDisposition",
      content_encoding: "ContentEncoding",
      content_language: "ContentLanguage",
      content_length: 1,
      content_md5: "ContentMD5",
      content_type: "ContentType",
      expires: Time.now,
      grant_full_control: "GrantFullControl",
      grant_read: "GrantRead",
      grant_read_acp: "GrantReadACP",
      grant_write_acp: "GrantWriteACP",
      key: "ObjectKey", # required
      metadata: {
        "MetadataKey" => "MetadataValue",
      },
      server_side_encryption: "AES256", # accepts AES256, aws:kms
      storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
      website_redirect_location: "WebsiteRedirectLocation",
      sse_customer_algorithm: "SSECustomerAlgorithm",
      sse_customer_key: "SSECustomerKey",
      sse_customer_key_md5: "SSECustomerKeyMD5",
      ssekms_key_id: "SSEKMSKeyId",
      ssekms_encryption_context: "SSEKMSEncryptionContext",
      bucket_key_enabled: false,
      request_payer: "requester", # accepts requester
      tagging: "TaggingHeader",
      object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
      object_lock_retain_until_date: Time.now,
      object_lock_legal_hold_status: "ON", # accepts ON, OFF
      expected_bucket_owner: "AccountId",
    }

@!attribute [rw] acl

The canned ACL to apply to the object. For more information, see
[Canned ACL][1].

This action is not supported by Amazon S3 on Outposts.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@return [String]

@!attribute [rw] body

Object data.
@return [IO]

@!attribute [rw] bucket

The bucket name to which the PUT action was initiated.

When using this action with an access point, you must direct
requests to the access point hostname. The access point hostname
takes the form
*AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
When using this action with an access point through the Amazon Web
Services SDKs, you provide the access point ARN in place of the
bucket name. For more information about access point ARNs, see
[Using access points][1] in the *Amazon S3 User Guide*.

When using this action with Amazon S3 on Outposts, you must direct
requests to the S3 on Outposts hostname. The S3 on Outposts hostname
takes the form
*AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
When using this action using S3 on Outposts through the Amazon Web
Services SDKs, you provide the Outposts bucket ARN in place of the
bucket name. For more information about S3 on Outposts ARNs, see
[Using S3 on Outposts][2] in the *Amazon S3 User Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html
[2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html
@return [String]

@!attribute [rw] cache_control

Can be used to specify caching behavior along the request/reply
chain. For more information, see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
@return [String]

@!attribute [rw] content_disposition

Specifies presentational information for the object. For more
information, see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
@return [String]

@!attribute [rw] 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. For more
information, see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
@return [String]

@!attribute [rw] content_language

The language the content is in.
@return [String]

@!attribute [rw] content_length

Size of the body in bytes. This parameter is useful when the size of
the body cannot be determined automatically. For more information,
see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
@return [Integer]

@!attribute [rw] content_md5

The base64-encoded 128-bit MD5 digest of the message (without the
headers) according to RFC 1864. This header can be used as a message
integrity check to verify that the data is the same data that was
originally sent. Although it is optional, we recommend using the
Content-MD5 mechanism as an end-to-end integrity check. For more
information about REST request authentication, see [REST
Authentication][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
@return [String]

@!attribute [rw] content_type

A standard MIME type describing the format of the contents. For more
information, see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
@return [String]

@!attribute [rw] expires

The date and time at which the object is no longer cacheable. For
more information, see
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].

[1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
@return [Time]

@!attribute [rw] grant_full_control

Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
object.

This action is not supported by Amazon S3 on Outposts.
@return [String]

@!attribute [rw] grant_read

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.
@return [String]

@!attribute [rw] grant_read_acp

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.
@return [String]

@!attribute [rw] grant_write_acp

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.
@return [String]

@!attribute [rw] key

Object key for which the PUT action was initiated.
@return [String]

@!attribute [rw] metadata

A map of metadata to store with the object in S3.
@return [Hash<String,String>]

@!attribute [rw] server_side_encryption

The server-side encryption algorithm used when storing this object
in Amazon S3 (for example, AES256, aws:kms).
@return [String]

@!attribute [rw] storage_class

By default, Amazon S3 uses the STANDARD Storage Class to store newly
created objects. The STANDARD storage class provides high durability
and high availability. Depending on performance needs, you can
specify a different Storage Class. Amazon S3 on Outposts only uses
the OUTPOSTS Storage Class. For more information, see [Storage
Classes][1] in the *Amazon S3 User Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
@return [String]

@!attribute [rw] 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. Amazon S3 stores the value of this header in the object
metadata. For information about object metadata, see [Object Key and
Metadata][1].

In the following example, the request header sets the redirect to an
object (anotherPage.html) in the same bucket:

`x-amz-website-redirect-location: /anotherPage.html`

In the following example, the request header sets the object
redirect to another website:

`x-amz-website-redirect-location: http://www.example.com/`

For more information about website hosting in Amazon S3, see
[Hosting Websites on Amazon S3][2] and [How to Configure Website
Page Redirects][3].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
[2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
[3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
@return [String]

@!attribute [rw] sse_customer_algorithm

Specifies the algorithm to use to when encrypting the object (for
example, AES256).
@return [String]

@!attribute [rw] sse_customer_key

Specifies the customer-provided encryption key for Amazon S3 to use
in encrypting data. This value is used to store the object and then
it is discarded; Amazon S3 does not store the encryption key. The
key must be appropriate for use with the algorithm specified in the
`x-amz-server-side-encryption-customer-algorithm` header.
@return [String]

@!attribute [rw] sse_customer_key_md5

Specifies the 128-bit MD5 digest of the encryption key according to
RFC 1321. Amazon S3 uses this header for a message integrity check
to ensure that the encryption key was transmitted without error.
@return [String]

@!attribute [rw] ssekms_key_id

If `x-amz-server-side-encryption` is present and has the value of
`aws:kms`, this header specifies the ID of the Amazon Web Services
Key Management Service (Amazon Web Services KMS) symmetrical
customer managed customer master key (CMK) that was used for the
object. If you specify `x-amz-server-side-encryption:aws:kms`, but
do not provide` x-amz-server-side-encryption-aws-kms-key-id`, Amazon
S3 uses the Amazon Web Services managed CMK in Amazon Web Services
to protect the data. If the KMS key does not exist in the same
account issuing the command, you must use the full ARN and not just
the ID.
@return [String]

@!attribute [rw] ssekms_encryption_context

Specifies the Amazon Web Services KMS Encryption Context to use for
object encryption. The value of this header is a base64-encoded
UTF-8 string holding JSON with the encryption context key-value
pairs.
@return [String]

@!attribute [rw] bucket_key_enabled

Specifies whether Amazon S3 should use an S3 Bucket Key for object
encryption with server-side encryption using AWS KMS (SSE-KMS).
Setting this header to `true` causes Amazon S3 to use an S3 Bucket
Key for object encryption with SSE-KMS.

Specifying this header with a PUT action doesn’t affect bucket-level
settings for S3 Bucket Key.
@return [Boolean]

@!attribute [rw] request_payer

Confirms that the requester knows that they will be charged for the
request. Bucket owners need not specify this parameter in their
requests. For information about downloading objects from requester
pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
in the *Amazon S3 User Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
@return [String]

@!attribute [rw] tagging

The tag-set for the object. The tag-set must be encoded as URL Query
parameters. (For example, "Key1=Value1")
@return [String]

@!attribute [rw] object_lock_mode

The Object Lock mode that you want to apply to this object.
@return [String]

@!attribute [rw] object_lock_retain_until_date

The date and time when you want this object's Object Lock to
expire. Must be formatted as a timestamp parameter.
@return [Time]

@!attribute [rw] object_lock_legal_hold_status

Specifies whether a legal hold will be applied to this object. For
more information about S3 Object Lock, see [Object Lock][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@return [String]

@!attribute [rw] expected_bucket_owner

The account ID of the expected bucket owner. If the bucket is owned
by a different account, the request will fail with an HTTP `403
(Access Denied)` error.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRequest AWS API Documentation

Constants

SENSITIVE