Sha256: 42057eb7003d9f907d473c051d9df50576abff30e70bb0cca3c9cb7ef125a3d4

Contents?: true

Size: 947 Bytes

Versions: 2

Compression:

Stored size: 947 Bytes

Contents

require 'multi_xml'

module Aws
  module Plugins
    class S3CompleteMultipartUploadFix < Seahorse::Client::Plugin

      class Handler < Seahorse::Client::Handler

        def call(context)
          @handler.call(context).on_success do |response|
            if error = check_for_error(response)
              response.http_response.status_code = 500
              response.data = nil
              response.error = error
            end
          end
        end

        def check_for_error(response)
          xml = MultiXml.parse(response.http_response.body_contents)
          if xml['Error']
            error_code = xml['Error']['Code']
            error_message = xml['Error']['Message']
            Errors.error_class('S3', error_code).new(error_message)
          end
        end

      end

      handler(Handler,
        step: :build,
        priority: 40,
        operations: [:complete_multipart_upload]
      )

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aws-sdk-core-2.0.0.rc2 lib/aws/plugins/s3_complete_multipart_upload_fix.rb
aws-sdk-core-2.0.0.rc1 lib/aws/plugins/s3_complete_multipart_upload_fix.rb