Class: Aws::S3::MultipartUploadPart

Inherits:
Object
  • Object
show all
Extended by:
Deprecations
Defined in:
sig/multipart_upload_part.rbs,
lib/aws-sdk-s3/multipart_upload_part.rb

Overview

Defined Under Namespace

Classes: Collection

Read-Only Attributes collapse

Actions collapse

Associations collapse

Instance Method Summary collapse

Constructor Details

#initialize(bucket_name, object_key, multipart_upload_id, part_number, options) ⇒ void #initialize(bucket_name:, object_key:, multipart_upload_id:, part_number:, client:) ⇒ void #initialize(args) ⇒ void

Overloads:

  • #initialize(bucket_name, object_key, multipart_upload_id, part_number, options) ⇒ void

    Parameters:

    • bucket_name (String)
    • object_key (String)
    • multipart_upload_id (String)
    • part_number (Integer)
    • options (Hash[Symbol, untyped])
  • #initialize(bucket_name:, object_key:, multipart_upload_id:, part_number:, client:) ⇒ void

    Parameters:

    • bucket_name: (String)
    • object_key: (String)
    • multipart_upload_id: (String)
    • part_number: (Integer)
    • client: (Client)
  • #initialize(args) ⇒ void

    Parameters:

    • args (Hash[Symbol, untyped])


28
29
30
31
32
33
34
35
36
37
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 28

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @bucket_name = extract_bucket_name(args, options)
  @object_key = extract_object_key(args, options)
  @multipart_upload_id = extract_multipart_upload_id(args, options)
  @part_number = extract_part_number(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
  @waiter_block_warned = false
end

Instance Method Details

#bucket_nameString

Returns:

  • (String)


42
43
44
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 42

def bucket_name
  @bucket_name
end

#checksum_crc32::String

Returns:

  • (::String)


88
89
90
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 88

def checksum_crc32
  data[:checksum_crc32]
end

#checksum_crc32c::String

Returns:

  • (::String)


101
102
103
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 101

def checksum_crc32c
  data[:checksum_crc32c]
end

#checksum_crc64nvme::String

Returns:

  • (::String)


116
117
118
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 116

def checksum_crc64nvme
  data[:checksum_crc64nvme]
end

#checksum_md5::String

Returns:

  • (::String)


168
169
170
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 168

def checksum_md5
  data[:checksum_md5]
end

#checksum_sha1::String

Returns:

  • (::String)


129
130
131
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 129

def checksum_sha1
  data[:checksum_sha1]
end

#checksum_sha256::String

Returns:

  • (::String)


142
143
144
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 142

def checksum_sha256
  data[:checksum_sha256]
end

#checksum_sha512::String

Returns:

  • (::String)


155
156
157
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 155

def checksum_sha512
  data[:checksum_sha512]
end

#checksum_xxhash128::String

Returns:

  • (::String)


207
208
209
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 207

def checksum_xxhash128
  data[:checksum_xxhash128]
end

#checksum_xxhash3::String

Returns:

  • (::String)


194
195
196
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 194

def checksum_xxhash3
  data[:checksum_xxhash3]
end

#checksum_xxhash64::String

Returns:

  • (::String)


181
182
183
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 181

def checksum_xxhash64
  data[:checksum_xxhash64]
end

#clientClient

Returns:



214
215
216
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 214

def client
  @client
end

#copy_from(options = {}) ⇒ Object



566
567
568
569
570
571
572
573
574
575
576
577
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 566

def copy_from(options = {})
  options = options.merge(
    bucket: @bucket_name,
    key: @object_key,
    upload_id: @multipart_upload_id,
    part_number: @part_number
  )
  resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
    @client.upload_part_copy(options)
  end
  resp.data
end

#dataTypes::Part

Returns:



229
230
231
232
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 229

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns:

  • (Boolean)


237
238
239
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 237

def data_loaded?
  !!@data
end

#etag::String

Returns:

  • (::String)


69
70
71
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 69

def etag
  data[:etag]
end

#identifiersObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deprecated.


809
810
811
812
813
814
815
816
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 809

def identifiers
  {
    bucket_name: @bucket_name,
    object_key: @object_key,
    multipart_upload_id: @multipart_upload_id,
    part_number: @part_number
  }
end

#last_modified::Time

Returns:

  • (::Time)


63
64
65
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 63

def last_modified
  data[:last_modified]
end

#loadObject Also known as: reload

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:

  • (NotImplementedError)


220
221
222
223
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 220

def load
  msg = "#load is not implemented, data only available via enumeration"
  raise NotImplementedError, msg
end

#multipart_uploadMultipartUpload

Returns:



798
799
800
801
802
803
804
805
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 798

def multipart_upload
  MultipartUpload.new(
    bucket_name: @bucket_name,
    object_key: @object_key,
    id: @multipart_upload_id,
    client: @client
  )
end

#multipart_upload_idString

Returns:

  • (String)


52
53
54
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 52

def multipart_upload_id
  @multipart_upload_id
end

#object_keyString

Returns:

  • (String)


47
48
49
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 47

def object_key
  @object_key
end

#part_numberInteger

Returns:

  • (Integer)


57
58
59
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 57

def part_number
  @part_number
end

#size::Integer

Returns:

  • (::Integer)


75
76
77
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 75

def size
  data[:size]
end

#upload(options = {}) ⇒ Object



782
783
784
785
786
787
788
789
790
791
792
793
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 782

def upload(options = {})
  options = options.merge(
    bucket: @bucket_name,
    key: @object_key,
    upload_id: @multipart_upload_id,
    part_number: @part_number
  )
  resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
    @client.upload_part(options)
  end
  resp.data
end

#wait_until(options = {}) {|resource| ... } ⇒ Resource

Deprecated.

Use [Aws::S3::Client] #wait_until instead

Note:

The waiting operation is performed on a copy. The original resource remains unchanged.

Waiter polls an API operation until a resource enters a desired state.

Basic Usage

Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.

# polls in a loop until condition is true
resource.wait_until(options) {|resource| condition}

Example

instance.wait_until(max_attempts:10, delay:5) do |instance|
  instance.state.name == 'running'
end

Configuration

You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:

# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}

Callbacks

You can be notified before each polling attempt and before each delay. If you throw :success or :failure from these callbacks, it will terminate the waiter.

started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
  throw :failure if Time.now - started_at > 3600
end

  # disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}

Handling Errors

When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.

begin
  resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end

attempts attempt in seconds invoked before each attempt invoked before each wait

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :max_attempts (Integer) — default: 10

    Maximum number of

  • :delay (Integer) — default: 10

    Delay between each

  • :before_attempt (Proc) — default: nil

    Callback

  • :before_wait (Proc) — default: nil

    Callback

Yield Parameters:

  • resource (Resource)

    to be used in the waiting condition.

Returns:

  • (Resource)

    if the waiter was successful

Raises:

  • (Aws::Waiters::Errors::FailureStateError)

    Raised when the waiter terminates because the waiter has entered a state that it will not transition out of, preventing success.

    yet successful.

  • (Aws::Waiters::Errors::UnexpectedError)

    Raised when an error is encountered while polling for a resource that is not expected.

  • (NotImplementedError)

    Raised when the resource does not



321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/aws-sdk-s3/multipart_upload_part.rb', line 321

def wait_until(options = {}, &block)
  self_copy = self.dup
  attempts = 0
  options[:max_attempts] = 10 unless options.key?(:max_attempts)
  options[:delay] ||= 10
  options[:poller] = Proc.new do
    attempts += 1
    if block.call(self_copy)
      [:success, self_copy]
    else
      self_copy.reload unless attempts == options[:max_attempts]
      :retry
    end
  end
  Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
    Aws::Waiters::Waiter.new(options).wait({})
  end
end