def copy_from(options = {})
      options = options.merge(
        bucket: @bucket_name,
        key: @key
      )
      resp = @client.copy_object(options)
      resp.data
    end
def copy_from(options = {})
      options = options.merge(
        bucket: @bucket_name,
        key: @key
      )
      resp = @client.copy_object(options)
      resp.data
    end
@!group Actions
 @example Request syntax with placeholder values

   object_summary.copy_from({
     acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
     cache_control: "CacheControl",
     content_disposition: "ContentDisposition",
     content_encoding: "ContentEncoding",
     content_language: "ContentLanguage",
     content_type: "ContentType",
     copy_source: "CopySource", # required
     copy_source_if_match: "CopySourceIfMatch",
     copy_source_if_modified_since: Time.now,
     copy_source_if_none_match: "CopySourceIfNoneMatch",
     copy_source_if_unmodified_since: Time.now,
     expires: Time.now,
     grant_full_control: "GrantFullControl",
     grant_read: "GrantRead",
     grant_read_acp: "GrantReadACP",
     grant_write_acp: "GrantWriteACP",
     metadata: {
       "MetadataKey" => "MetadataValue",
     },
     metadata_directive: "COPY", # accepts COPY, REPLACE
     tagging_directive: "COPY", # accepts COPY, REPLACE
     server_side_encryption: "AES256", # accepts AES256, aws:kms
     storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
     website_redirect_location: "WebsiteRedirectLocation",
     sse_customer_algorithm: "SSECustomerAlgorithm",
     sse_customer_key: "SSECustomerKey",
     sse_customer_key_md5: "SSECustomerKeyMD5",
     ssekms_key_id: "SSEKMSKeyId",
     copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
     copy_source_sse_customer_key: "CopySourceSSECustomerKey",
     copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
     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
   })
 @param [Hash] options ({})
 @option options [String] :acl
   The canned ACL to apply to the object.
 @option options [String] :cache_control
   Specifies caching behavior along the request/reply chain.
 @option options [String] :content_disposition
   Specifies presentational information for the object.
 @option options [String] :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.
 @option options [String] :content_language
   The language the content is in.
 @option options [String] :content_type
   A standard MIME type describing the format of the object data.
 @option options [required, String] :copy_source
   The name of the source bucket and key name of the source object,
   separated by a slash (/). Must be URL-encoded.
 @option options [String] :copy_source_if_match
   Copies the object if its entity tag (ETag) matches the specified tag.
 @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
   Copies the object if it has been modified since the specified time.
 @option options [String] :copy_source_if_none_match
   Copies the object if its entity tag (ETag) is different than the
   specified ETag.
 @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
   Copies the object if it hasn't been modified since the specified
   time.
 @option options [Time,DateTime,Date,Integer,String] :expires
   The date and time at which the object is no longer cacheable.
 @option options [String] :grant_full_control
   Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
   object.
 @option options [String] :grant_read
   Allows grantee to read the object data and its metadata.
 @option options [String] :grant_read_acp
   Allows grantee to read the object ACL.
 @option options [String] :grant_write_acp
   Allows grantee to write the ACL for the applicable object.
 @option options [Hash<String,String>] :metadata
   A map of metadata to store with the object in S3.
 @option options [String] :metadata_directive
   Specifies whether the metadata is copied from the source object or
   replaced with metadata provided in the request.
 @option options [String] :tagging_directive
   Specifies whether the object tag-set are copied from the source object
   or replaced with tag-set provided in the request.
 @option options [String] :server_side_encryption
   The Server-side encryption algorithm used when storing this object in
   S3 (e.g., AES256, aws:kms).
 @option options [String] :storage_class
   The type of storage to use for the object. Defaults to 'STANDARD'.
 @option options [String] :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.
 @option options [String] :sse_customer_algorithm
   Specifies the algorithm to use to when encrypting the object (e.g.,
   AES256).
 @option options [String] :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 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.
 @option options [String] :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 the encryption key was transmitted without error.
 @option options [String] :ssekms_key_id
   Specifies the AWS KMS key ID to use for object encryption. All GET and
   PUT requests for an object protected by AWS KMS will fail if not made
   via SSL or using SigV4. Documentation on configuring any of the
   officially supported AWS SDKs and CLI can be found at
   http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
 @option options [String] :copy_source_sse_customer_algorithm
   Specifies the algorithm to use when decrypting the source object
   (e.g., AES256).
 @option options [String] :copy_source_sse_customer_key
   Specifies the customer-provided encryption key for Amazon S3 to use to
   decrypt the source object. The encryption key provided in this header
   must be one that was used when the source object was created.
 @option options [String] :copy_source_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 the encryption key was transmitted without error.
 @option options [String] :request_payer
   Confirms that the requester knows that she or he will be charged for
   the request. Bucket owners need not specify this parameter in their
   requests. Documentation on downloading objects from requester pays
   buckets can be found at
   http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
 @option options [String] :tagging
   The tag-set for the object destination object this value must be used
   in conjunction with the TaggingDirective. The tag-set must be encoded
   as URL Query parameters
 @option options [String] :object_lock_mode
   The Object Lock mode that you want to apply to the copied object.
 @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
   The date and time when you want the copied object's Object Lock to
   expire.
 @option options [String] :object_lock_legal_hold_status
   Specifies whether you want to apply a Legal Hold to the copied object.
 @return [Types::CopyObjectOutput]