Class: S3::MultipartPartsRequest
- Defined in:
- lib/s3/multipart_parts_request.rb
Constant Summary
Constants inherited from Request
Request::AWS_ALGORITHM, Request::AWS_REQUEST, Request::SERVICE, Request::UNSIGNED_PAYLOAD
Instance Method Summary collapse
Methods inherited from Request
Constructor Details
This class inherits a constructor from S3::Request
Instance Method Details
#parse_response(body) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/s3/multipart_parts_request.rb', line 21 def parse_response( body ) document = parse_xml( body ) document.remove_namespaces! parts = document.xpath( '//Part' ).map do | node | { part_number: node.at( 'PartNumber' )&.text&.to_i, etag: node.at( 'ETag' )&.text&.tr( '\"', '' ), size: node.at( 'Size' )&.text&.to_i, last_modified: Helpers.parse_iso8601( node.at( 'LastModified' )&.text ) } end { bucket: document.at( '//Bucket' )&.text, key: document.at( '//Key' )&.text, upload_id: document.at( '//UploadId' )&.text, parts: parts, is_truncated: document.at( '//IsTruncated' )&.text == 'true', next_part_number_marker: document.at( '//NextPartNumberMarker' )&.text&.to_i } end |
#submit(options = nil, bucket:, key:, upload_id:, **kwargs) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/s3/multipart_parts_request.rb', line 3 def submit( = nil, bucket:, key:, upload_id:, **kwargs ) path = "/#{ bucket }/#{ Helpers.encode_key( key ) }" = ( , kwargs, MultipartPartsOptions ) params = { 'uploadId' => upload_id } params[ 'part-number-marker' ] = [ :part_number_marker ].to_s if [ :part_number_marker ] params[ 'max-parts' ] = [ :max_parts ].to_s if [ :max_parts ] query = Helpers.build_query_string( params ) response = get( path, query: query ) build_result( response, MultipartPartsResult ) do MultipartPartsResult.new( parse_response( response.body ) ) end end |