aws-sdk-s3 1.119.1 → 1.132.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +97 -0
 - data/VERSION +1 -1
 - data/lib/aws-sdk-s3/bucket.rb +108 -55
 - data/lib/aws-sdk-s3/bucket_acl.rb +9 -3
 - data/lib/aws-sdk-s3/bucket_cors.rb +12 -4
 - data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -4
 - data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -4
 - data/lib/aws-sdk-s3/bucket_logging.rb +9 -3
 - data/lib/aws-sdk-s3/bucket_notification.rb +9 -3
 - data/lib/aws-sdk-s3/bucket_policy.rb +12 -4
 - data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -3
 - data/lib/aws-sdk-s3/bucket_tagging.rb +12 -4
 - data/lib/aws-sdk-s3/bucket_versioning.rb +15 -5
 - data/lib/aws-sdk-s3/bucket_website.rb +12 -4
 - data/lib/aws-sdk-s3/client.rb +1740 -1441
 - data/lib/aws-sdk-s3/client_api.rb +24 -0
 - data/lib/aws-sdk-s3/customizations/bucket.rb +3 -1
 - data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
 - data/lib/aws-sdk-s3/customizations/object.rb +49 -18
 - data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
 - data/lib/aws-sdk-s3/customizations.rb +2 -0
 - data/lib/aws-sdk-s3/encryption/client.rb +6 -2
 - data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
 - data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
 - data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
 - data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
 - data/lib/aws-sdk-s3/endpoint_parameters.rb +4 -0
 - data/lib/aws-sdk-s3/endpoint_provider.rb +103 -327
 - data/lib/aws-sdk-s3/endpoints.rb +1 -0
 - data/lib/aws-sdk-s3/file_downloader.rb +61 -25
 - data/lib/aws-sdk-s3/file_uploader.rb +8 -6
 - data/lib/aws-sdk-s3/multipart_stream_uploader.rb +5 -3
 - data/lib/aws-sdk-s3/multipart_upload.rb +12 -4
 - data/lib/aws-sdk-s3/multipart_upload_part.rb +10 -4
 - data/lib/aws-sdk-s3/object.rb +105 -77
 - data/lib/aws-sdk-s3/object_acl.rb +9 -3
 - data/lib/aws-sdk-s3/object_copier.rb +7 -5
 - data/lib/aws-sdk-s3/object_multipart_copier.rb +33 -17
 - data/lib/aws-sdk-s3/object_summary.rb +103 -64
 - data/lib/aws-sdk-s3/object_version.rb +35 -9
 - data/lib/aws-sdk-s3/plugins/s3_signer.rb +13 -11
 - data/lib/aws-sdk-s3/presigned_post.rb +52 -43
 - data/lib/aws-sdk-s3/presigner.rb +4 -2
 - data/lib/aws-sdk-s3/resource.rb +7 -3
 - data/lib/aws-sdk-s3/types.rb +711 -405
 - data/lib/aws-sdk-s3.rb +1 -1
 - metadata +8 -6
 
    
        data/lib/aws-sdk-s3/endpoints.rb
    CHANGED
    
    
| 
         @@ -32,39 +32,66 @@ module Aws 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    }
         
     | 
| 
       33 
33 
     | 
    
         
             
                    @params[:version_id] = options[:version_id] if options[:version_id]
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                     
     | 
| 
       36 
     | 
    
         
            -
                     
     | 
| 
       37 
     | 
    
         
            -
                     
     | 
| 
       38 
     | 
    
         
            -
                     
     | 
| 
       39 
     | 
    
         
            -
                       
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
      
 35 
     | 
    
         
            +
                    # checksum_mode only supports the value "ENABLED"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    # falsey values (false/nil) or "DISABLED" should be considered
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # disabled and the api parameter should be unset.
         
     | 
| 
      
 38 
     | 
    
         
            +
                    if (checksum_mode = options.fetch(:checksum_mode, 'ENABLED'))
         
     | 
| 
      
 39 
     | 
    
         
            +
                      @params[:checksum_mode] = checksum_mode unless checksum_mode.upcase == 'DISABLED'
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
                    @on_checksum_validated = options[:on_checksum_validated]
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                    validate!
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    Aws::Plugins::UserAgent.feature('s3-transfer') do
         
     | 
| 
      
 46 
     | 
    
         
            +
                      case @mode
         
     | 
| 
      
 47 
     | 
    
         
            +
                      when 'auto' then multipart_download
         
     | 
| 
      
 48 
     | 
    
         
            +
                      when 'single_request' then single_request
         
     | 
| 
      
 49 
     | 
    
         
            +
                      when 'get_range'
         
     | 
| 
      
 50 
     | 
    
         
            +
                        if @chunk_size
         
     | 
| 
      
 51 
     | 
    
         
            +
                          resp = @client.head_object(@params)
         
     | 
| 
      
 52 
     | 
    
         
            +
                          multithreaded_get_by_ranges(construct_chunks(resp.content_length))
         
     | 
| 
      
 53 
     | 
    
         
            +
                        else
         
     | 
| 
      
 54 
     | 
    
         
            +
                          msg = 'In :get_range mode, :chunk_size must be provided'
         
     | 
| 
      
 55 
     | 
    
         
            +
                          raise ArgumentError, msg
         
     | 
| 
      
 56 
     | 
    
         
            +
                        end
         
     | 
| 
       42 
57 
     | 
    
         
             
                      else
         
     | 
| 
       43 
     | 
    
         
            -
                        msg =  
     | 
| 
      
 58 
     | 
    
         
            +
                        msg = "Invalid mode #{@mode} provided, "\
         
     | 
| 
      
 59 
     | 
    
         
            +
                              'mode should be :single_request, :get_range or :auto'
         
     | 
| 
       44 
60 
     | 
    
         
             
                        raise ArgumentError, msg
         
     | 
| 
       45 
61 
     | 
    
         
             
                      end
         
     | 
| 
       46 
     | 
    
         
            -
                    else
         
     | 
| 
       47 
     | 
    
         
            -
                      msg = "Invalid mode #{@mode} provided, "\
         
     | 
| 
       48 
     | 
    
         
            -
                            'mode should be :single_request, :get_range or :auto'
         
     | 
| 
       49 
     | 
    
         
            -
                      raise ArgumentError, msg
         
     | 
| 
       50 
62 
     | 
    
         
             
                    end
         
     | 
| 
       51 
63 
     | 
    
         
             
                  end
         
     | 
| 
       52 
64 
     | 
    
         | 
| 
       53 
65 
     | 
    
         
             
                  private
         
     | 
| 
       54 
66 
     | 
    
         | 
| 
      
 67 
     | 
    
         
            +
                  def validate!
         
     | 
| 
      
 68 
     | 
    
         
            +
                    if @on_checksum_validated && @params[:checksum_mode] != 'ENABLED'
         
     | 
| 
      
 69 
     | 
    
         
            +
                      raise ArgumentError, "You must set checksum_mode: 'ENABLED' " +
         
     | 
| 
      
 70 
     | 
    
         
            +
                        "when providing a on_checksum_validated callback"
         
     | 
| 
      
 71 
     | 
    
         
            +
                    end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                    if @on_checksum_validated && !@on_checksum_validated.respond_to?(:call)
         
     | 
| 
      
 74 
     | 
    
         
            +
                      raise ArgumentError, 'on_checksum_validated must be callable'
         
     | 
| 
      
 75 
     | 
    
         
            +
                    end
         
     | 
| 
      
 76 
     | 
    
         
            +
                  end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       55 
78 
     | 
    
         
             
                  def multipart_download
         
     | 
| 
       56 
79 
     | 
    
         
             
                    resp = @client.head_object(@params.merge(part_number: 1))
         
     | 
| 
       57 
80 
     | 
    
         
             
                    count = resp.parts_count
         
     | 
| 
       58 
81 
     | 
    
         
             
                    if count.nil? || count <= 1
         
     | 
| 
       59 
     | 
    
         
            -
                      resp.content_length  
     | 
| 
       60 
     | 
    
         
            -
                        single_request 
     | 
| 
      
 82 
     | 
    
         
            +
                      if resp.content_length <= MIN_CHUNK_SIZE
         
     | 
| 
      
 83 
     | 
    
         
            +
                        single_request
         
     | 
| 
      
 84 
     | 
    
         
            +
                      else
         
     | 
| 
       61 
85 
     | 
    
         
             
                        multithreaded_get_by_ranges(construct_chunks(resp.content_length))
         
     | 
| 
      
 86 
     | 
    
         
            +
                      end
         
     | 
| 
       62 
87 
     | 
    
         
             
                    else
         
     | 
| 
       63 
88 
     | 
    
         
             
                      # partNumber is an option
         
     | 
| 
       64 
89 
     | 
    
         
             
                      resp = @client.head_object(@params)
         
     | 
| 
       65 
     | 
    
         
            -
                      resp.content_length  
     | 
| 
       66 
     | 
    
         
            -
                        single_request 
     | 
| 
      
 90 
     | 
    
         
            +
                      if resp.content_length <= MIN_CHUNK_SIZE
         
     | 
| 
      
 91 
     | 
    
         
            +
                        single_request
         
     | 
| 
      
 92 
     | 
    
         
            +
                      else
         
     | 
| 
       67 
93 
     | 
    
         
             
                        compute_mode(resp.content_length, count)
         
     | 
| 
      
 94 
     | 
    
         
            +
                      end
         
     | 
| 
       68 
95 
     | 
    
         
             
                    end
         
     | 
| 
       69 
96 
     | 
    
         
             
                  end
         
     | 
| 
       70 
97 
     | 
    
         | 
| 
         @@ -82,10 +109,11 @@ module Aws 
     | 
|
| 
       82 
109 
     | 
    
         
             
                    offset = 0
         
     | 
| 
       83 
110 
     | 
    
         
             
                    default_chunk_size = compute_chunk(file_size)
         
     | 
| 
       84 
111 
     | 
    
         
             
                    chunks = []
         
     | 
| 
       85 
     | 
    
         
            -
                    while offset  
     | 
| 
      
 112 
     | 
    
         
            +
                    while offset < file_size
         
     | 
| 
       86 
113 
     | 
    
         
             
                      progress = offset + default_chunk_size
         
     | 
| 
       87 
     | 
    
         
            -
                       
     | 
| 
       88 
     | 
    
         
            -
                       
     | 
| 
      
 114 
     | 
    
         
            +
                      progress = file_size if progress > file_size
         
     | 
| 
      
 115 
     | 
    
         
            +
                      chunks << "bytes=#{offset}-#{progress - 1}"
         
     | 
| 
      
 116 
     | 
    
         
            +
                      offset = progress
         
     | 
| 
       89 
117 
     | 
    
         
             
                    end
         
     | 
| 
       90 
118 
     | 
    
         
             
                    chunks
         
     | 
| 
       91 
119 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -94,12 +122,9 @@ module Aws 
     | 
|
| 
       94 
122 
     | 
    
         
             
                    if @chunk_size && @chunk_size > file_size
         
     | 
| 
       95 
123 
     | 
    
         
             
                      raise ArgumentError, ":chunk_size shouldn't exceed total file size."
         
     | 
| 
       96 
124 
     | 
    
         
             
                    else
         
     | 
| 
       97 
     | 
    
         
            -
                       
     | 
| 
       98 
     | 
    
         
            -
                        (file_size.to_f / MAX_PARTS).ceil,
         
     | 
| 
       99 
     | 
    
         
            -
                        MIN_CHUNK_SIZE
         
     | 
| 
      
 125 
     | 
    
         
            +
                      @chunk_size || [
         
     | 
| 
      
 126 
     | 
    
         
            +
                        (file_size.to_f / MAX_PARTS).ceil, MIN_CHUNK_SIZE
         
     | 
| 
       100 
127 
     | 
    
         
             
                      ].max.to_i
         
     | 
| 
       101 
     | 
    
         
            -
                      chunk_size -= 1 if file_size % chunk_size == 1
         
     | 
| 
       102 
     | 
    
         
            -
                      chunk_size
         
     | 
| 
       103 
128 
     | 
    
         
             
                    end
         
     | 
| 
       104 
129 
     | 
    
         
             
                  end
         
     | 
| 
       105 
130 
     | 
    
         | 
| 
         @@ -125,6 +150,9 @@ module Aws 
     | 
|
| 
       125 
150 
     | 
    
         
             
                            @params.merge(param.to_sym => chunk)
         
     | 
| 
       126 
151 
     | 
    
         
             
                          )
         
     | 
| 
       127 
152 
     | 
    
         
             
                          write(resp)
         
     | 
| 
      
 153 
     | 
    
         
            +
                          if @on_checksum_validated && resp.checksum_validated
         
     | 
| 
      
 154 
     | 
    
         
            +
                            @on_checksum_validated.call(resp.checksum_validated, resp)
         
     | 
| 
      
 155 
     | 
    
         
            +
                          end
         
     | 
| 
       128 
156 
     | 
    
         
             
                        end
         
     | 
| 
       129 
157 
     | 
    
         
             
                      end
         
     | 
| 
       130 
158 
     | 
    
         
             
                      threads.each(&:join)
         
     | 
| 
         @@ -138,9 +166,17 @@ module Aws 
     | 
|
| 
       138 
166 
     | 
    
         
             
                  end
         
     | 
| 
       139 
167 
     | 
    
         | 
| 
       140 
168 
     | 
    
         
             
                  def single_request
         
     | 
| 
       141 
     | 
    
         
            -
                    @client.get_object(
         
     | 
| 
      
 169 
     | 
    
         
            +
                    resp = @client.get_object(
         
     | 
| 
       142 
170 
     | 
    
         
             
                      @params.merge(response_target: @path)
         
     | 
| 
       143 
171 
     | 
    
         
             
                    )
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
                    return resp unless @on_checksum_validated
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
                    if resp.checksum_validated
         
     | 
| 
      
 176 
     | 
    
         
            +
                      @on_checksum_validated.call(resp.checksum_validated, resp)
         
     | 
| 
      
 177 
     | 
    
         
            +
                    end
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
      
 179 
     | 
    
         
            +
                    resp
         
     | 
| 
       144 
180 
     | 
    
         
             
                  end
         
     | 
| 
       145 
181 
     | 
    
         
             
                end
         
     | 
| 
       146 
182 
     | 
    
         
             
              end
         
     | 
| 
         @@ -37,12 +37,14 @@ module Aws 
     | 
|
| 
       37 
37 
     | 
    
         
             
                  #   objects smaller than the multipart threshold.
         
     | 
| 
       38 
38 
     | 
    
         
             
                  # @return [void]
         
     | 
| 
       39 
39 
     | 
    
         
             
                  def upload(source, options = {})
         
     | 
| 
       40 
     | 
    
         
            -
                     
     | 
| 
       41 
     | 
    
         
            -
                       
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                       
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
                    Aws::Plugins::UserAgent.feature('s3-transfer') do
         
     | 
| 
      
 41 
     | 
    
         
            +
                      if File.size(source) >= multipart_threshold
         
     | 
| 
      
 42 
     | 
    
         
            +
                        MultipartFileUploader.new(@options).upload(source, options)
         
     | 
| 
      
 43 
     | 
    
         
            +
                      else
         
     | 
| 
      
 44 
     | 
    
         
            +
                        # remove multipart parameters not supported by put_object
         
     | 
| 
      
 45 
     | 
    
         
            +
                        options.delete(:thread_count)
         
     | 
| 
      
 46 
     | 
    
         
            +
                        put_object(source, options)
         
     | 
| 
      
 47 
     | 
    
         
            +
                      end
         
     | 
| 
       46 
48 
     | 
    
         
             
                    end
         
     | 
| 
       47 
49 
     | 
    
         
             
                  end
         
     | 
| 
       48 
50 
     | 
    
         | 
| 
         @@ -45,9 +45,11 @@ module Aws 
     | 
|
| 
       45 
45 
     | 
    
         
             
                  # @option options [required,String] :key
         
     | 
| 
       46 
46 
     | 
    
         
             
                  # @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse
         
     | 
| 
       47 
47 
     | 
    
         
             
                  def upload(options = {}, &block)
         
     | 
| 
       48 
     | 
    
         
            -
                     
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
                    Aws::Plugins::UserAgent.feature('s3-transfer') do
         
     | 
| 
      
 49 
     | 
    
         
            +
                      upload_id = initiate_upload(options)
         
     | 
| 
      
 50 
     | 
    
         
            +
                      parts = upload_parts(upload_id, options, &block)
         
     | 
| 
      
 51 
     | 
    
         
            +
                      complete_upload(upload_id, parts, options)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
       51 
53 
     | 
    
         
             
                  end
         
     | 
| 
       52 
54 
     | 
    
         | 
| 
       53 
55 
     | 
    
         
             
                  private
         
     | 
| 
         @@ -217,7 +217,9 @@ module Aws::S3 
     | 
|
| 
       217 
217 
     | 
    
         
             
                      :retry
         
     | 
| 
       218 
218 
     | 
    
         
             
                    end
         
     | 
| 
       219 
219 
     | 
    
         
             
                  end
         
     | 
| 
       220 
     | 
    
         
            -
                  Aws:: 
     | 
| 
      
 220 
     | 
    
         
            +
                  Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 221 
     | 
    
         
            +
                    Aws::Waiters::Waiter.new(options).wait({})
         
     | 
| 
      
 222 
     | 
    
         
            +
                  end
         
     | 
| 
       221 
223 
     | 
    
         
             
                end
         
     | 
| 
       222 
224 
     | 
    
         | 
| 
       223 
225 
     | 
    
         
             
                # @!group Actions
         
     | 
| 
         @@ -250,7 +252,9 @@ module Aws::S3 
     | 
|
| 
       250 
252 
     | 
    
         
             
                    key: @object_key,
         
     | 
| 
       251 
253 
     | 
    
         
             
                    upload_id: @id
         
     | 
| 
       252 
254 
     | 
    
         
             
                  )
         
     | 
| 
       253 
     | 
    
         
            -
                  resp =  
     | 
| 
      
 255 
     | 
    
         
            +
                  resp = Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 256 
     | 
    
         
            +
                    @client.abort_multipart_upload(options)
         
     | 
| 
      
 257 
     | 
    
         
            +
                  end
         
     | 
| 
       254 
258 
     | 
    
         
             
                  resp.data
         
     | 
| 
       255 
259 
     | 
    
         
             
                end
         
     | 
| 
       256 
260 
     | 
    
         | 
| 
         @@ -370,7 +374,9 @@ module Aws::S3 
     | 
|
| 
       370 
374 
     | 
    
         
             
                    key: @object_key,
         
     | 
| 
       371 
375 
     | 
    
         
             
                    upload_id: @id
         
     | 
| 
       372 
376 
     | 
    
         
             
                  )
         
     | 
| 
       373 
     | 
    
         
            -
                   
     | 
| 
      
 377 
     | 
    
         
            +
                  Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 378 
     | 
    
         
            +
                    @client.complete_multipart_upload(options)
         
     | 
| 
      
 379 
     | 
    
         
            +
                  end
         
     | 
| 
       374 
380 
     | 
    
         
             
                  Object.new(
         
     | 
| 
       375 
381 
     | 
    
         
             
                    bucket_name: @bucket_name,
         
     | 
| 
       376 
382 
     | 
    
         
             
                    key: @object_key,
         
     | 
| 
         @@ -460,7 +466,9 @@ module Aws::S3 
     | 
|
| 
       460 
466 
     | 
    
         
             
                      key: @object_key,
         
     | 
| 
       461 
467 
     | 
    
         
             
                      upload_id: @id
         
     | 
| 
       462 
468 
     | 
    
         
             
                    )
         
     | 
| 
       463 
     | 
    
         
            -
                    resp =  
     | 
| 
      
 469 
     | 
    
         
            +
                    resp = Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 470 
     | 
    
         
            +
                      @client.list_parts(options)
         
     | 
| 
      
 471 
     | 
    
         
            +
                    end
         
     | 
| 
       464 
472 
     | 
    
         
             
                    resp.each_page do |page|
         
     | 
| 
       465 
473 
     | 
    
         
             
                      batch = []
         
     | 
| 
       466 
474 
     | 
    
         
             
                      page.data.parts.each do |p|
         
     | 
| 
         @@ -256,7 +256,9 @@ module Aws::S3 
     | 
|
| 
       256 
256 
     | 
    
         
             
                      :retry
         
     | 
| 
       257 
257 
     | 
    
         
             
                    end
         
     | 
| 
       258 
258 
     | 
    
         
             
                  end
         
     | 
| 
       259 
     | 
    
         
            -
                  Aws:: 
     | 
| 
      
 259 
     | 
    
         
            +
                  Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 260 
     | 
    
         
            +
                    Aws::Waiters::Waiter.new(options).wait({})
         
     | 
| 
      
 261 
     | 
    
         
            +
                  end
         
     | 
| 
       260 
262 
     | 
    
         
             
                end
         
     | 
| 
       261 
263 
     | 
    
         | 
| 
       262 
264 
     | 
    
         
             
                # @!group Actions
         
     | 
| 
         @@ -284,7 +286,7 @@ module Aws::S3 
     | 
|
| 
       284 
286 
     | 
    
         
             
                # @option options [required, String] :copy_source
         
     | 
| 
       285 
287 
     | 
    
         
             
                #   Specifies the source object for the copy operation. You specify the
         
     | 
| 
       286 
288 
     | 
    
         
             
                #   value in one of two formats, depending on whether you want to access
         
     | 
| 
       287 
     | 
    
         
            -
                #   the source object through an [access point][1] 
     | 
| 
      
 289 
     | 
    
         
            +
                #   the source object through an [access point][1]:
         
     | 
| 
       288 
290 
     | 
    
         
             
                #
         
     | 
| 
       289 
291 
     | 
    
         
             
                #   * For objects not accessed through an access point, specify the name
         
     | 
| 
       290 
292 
     | 
    
         
             
                #     of the source bucket and key of the source object, separated by a
         
     | 
| 
         @@ -395,7 +397,9 @@ module Aws::S3 
     | 
|
| 
       395 
397 
     | 
    
         
             
                    upload_id: @multipart_upload_id,
         
     | 
| 
       396 
398 
     | 
    
         
             
                    part_number: @part_number
         
     | 
| 
       397 
399 
     | 
    
         
             
                  )
         
     | 
| 
       398 
     | 
    
         
            -
                  resp =  
     | 
| 
      
 400 
     | 
    
         
            +
                  resp = Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 401 
     | 
    
         
            +
                    @client.upload_part_copy(options)
         
     | 
| 
      
 402 
     | 
    
         
            +
                  end
         
     | 
| 
       399 
403 
     | 
    
         
             
                  resp.data
         
     | 
| 
       400 
404 
     | 
    
         
             
                end
         
     | 
| 
       401 
405 
     | 
    
         | 
| 
         @@ -521,7 +525,9 @@ module Aws::S3 
     | 
|
| 
       521 
525 
     | 
    
         
             
                    upload_id: @multipart_upload_id,
         
     | 
| 
       522 
526 
     | 
    
         
             
                    part_number: @part_number
         
     | 
| 
       523 
527 
     | 
    
         
             
                  )
         
     | 
| 
       524 
     | 
    
         
            -
                  resp =  
     | 
| 
      
 528 
     | 
    
         
            +
                  resp = Aws::Plugins::UserAgent.feature('resource') do
         
     | 
| 
      
 529 
     | 
    
         
            +
                    @client.upload_part(options)
         
     | 
| 
      
 530 
     | 
    
         
            +
                  end
         
     | 
| 
       525 
531 
     | 
    
         
             
                  resp.data
         
     | 
| 
       526 
532 
     | 
    
         
             
                end
         
     | 
| 
       527 
533 
     | 
    
         |