You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::Glacier::MultipartUpload

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb

Defined Under Namespace

Classes: Collection

Actions collapse

Associations collapse

Read-Only Attributes collapse

Instance Method Summary collapse

Constructor Details

#initialize(account_id, vault_name, id, options = {}) ⇒ MultipartUpload #initialize(options = {}) ⇒ MultipartUpload

Returns a new instance of MultipartUpload

Overloads:

  • #initialize(account_id, vault_name, id, options = {}) ⇒ MultipartUpload

    Parameters:

    • account_id (String)
    • vault_name (String)
    • id (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ MultipartUpload

    Options Hash (options):

    • :account_id (required, String)
    • :vault_name (required, String)
    • :id (required, String)
    • :client (Client)


23
24
25
26
27
28
29
30
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 23

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @account_id = (args, options)
  @vault_name = extract_vault_name(args, options)
  @id = extract_id(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
end

Instance Method Details

#abort(options = {}) ⇒ EmptyStructure

Examples:

Request syntax with placeholder values


multipart_upload.abort()

Parameters:

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

    ({})

Returns:

  • (EmptyStructure)


209
210
211
212
213
214
215
216
217
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 209

def abort(options = {})
  options = options.merge(
    account_id: @account_id,
    vault_name: @vault_name,
    upload_id: @id
  )
  resp = @client.abort_multipart_upload(options)
  resp.data
end

#account_idString

Returns:

  • (String)


35
36
37
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 35

def 
  @account_id
end

#archive_descriptionString

The description of the archive that was specified in the Initiate Multipart Upload request.

Returns:

  • (String)


59
60
61
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 59

def archive_description
  data[:archive_description]
end

#clientClient

Returns:



80
81
82
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 80

def client
  @client
end

#complete(options = {}) ⇒ Types::ArchiveCreationOutput

Examples:

Request syntax with placeholder values


multipart_upload.complete({
  archive_size: 1,
  checksum: "string",
})

Parameters:

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

    ({})

Options Hash (options):

  • :archive_size (Integer)

    The total size, in bytes, of the entire archive. This value should be the sum of all the sizes of the individual parts that you uploaded.

  • :checksum (String)

    The SHA256 tree hash of the entire archive. It is the tree hash of SHA256 tree hash of the individual parts. If the value you specify in the request does not match the SHA256 tree hash of the final assembled archive as computed by Amazon Glacier, Amazon Glacier returns an error and the request fails.

Returns:



236
237
238
239
240
241
242
243
244
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 236

def complete(options = {})
  options = options.merge(
    account_id: @account_id,
    vault_name: @vault_name,
    upload_id: @id
  )
  resp = @client.complete_multipart_upload(options)
  resp.data
end

#creation_dateTime

The UTC time at which the multipart upload was initiated.

Returns:

  • (Time)


73
74
75
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 73

def creation_date
  data[:creation_date]
end

#dataTypes::UploadListElement

Returns the data for this Aws::Glacier::MultipartUpload.

Returns:

Raises:



95
96
97
98
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 95

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



103
104
105
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 103

def data_loaded?
  !!@data
end

#idString Also known as: multipart_upload_id

Returns:

  • (String)


45
46
47
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 45

def id
  @id
end

#part_size_in_bytesInteger

The part size, in bytes, specified in the Initiate Multipart Upload request. This is the size of all the parts in the upload except the last part, which may be smaller than this size.

Returns:

  • (Integer)


67
68
69
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 67

def part_size_in_bytes
  data[:part_size_in_bytes]
end

#parts(options = {}) ⇒ Types::ListPartsOutput

Examples:

Request syntax with placeholder values


multipart_upload.parts({
  marker: "string",
  limit: 1,
})

Parameters:

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

    ({})

Options Hash (options):

  • :marker (String)

    An opaque string used for pagination. This value specifies the part at which the listing of parts should begin. Get the marker value from the response of a previous List Parts response. You need only include the marker if you are continuing the pagination of results started in a previous List Parts request.

  • :limit (Integer)

    The maximum number of parts to be returned. The default limit is 1000. The number of parts returned might be fewer than the specified limit, but the number of returned parts never exceeds the limit.

Returns:



264
265
266
267
268
269
270
271
272
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 264

def parts(options = {})
  options = options.merge(
    account_id: @account_id,
    vault_name: @vault_name,
    upload_id: @id
  )
  resp = @client.list_parts(options)
  resp.data
end

#upload_part(options = {}) ⇒ Types::UploadMultipartPartOutput

Examples:

Request syntax with placeholder values


multipart_upload.upload_part({
  checksum: "string",
  range: "string",
  body: "data",
})

Parameters:

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

    ({})

Options Hash (options):

  • :checksum (String)

    The SHA256 tree hash of the data being uploaded.

  • :range (String)

    Identifies the range of bytes in the assembled archive that will be uploaded in this part. Amazon Glacier uses this information to assemble the archive in the proper sequence. The format of this header follows RFC 2616. An example header is Content-Range:bytes 0-4194303/*.

  • :body (String, IO)

    The data to upload.

Returns:



293
294
295
296
297
298
299
300
301
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 293

def upload_part(options = {})
  options = options.merge(
    account_id: @account_id,
    vault_name: @vault_name,
    upload_id: @id
  )
  resp = @client.upload_multipart_part(options)
  resp.data
end

#vaultVault

Returns:



306
307
308
309
310
311
312
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 306

def vault
  Vault.new(
    account_id: @account_id,
    name: @vault_name,
    client: @client
  )
end

#vault_arnString

The Amazon Resource Name (ARN) of the vault that contains the archive.

Returns:

  • (String)


52
53
54
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 52

def vault_arn
  data[:vault_arn]
end

#vault_nameString

Returns:

  • (String)


40
41
42
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 40

def vault_name
  @vault_name
end

#wait_until(options = {}, &block) ⇒ Resource

Deprecated.

Use [Aws::Glacier::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) {|instance| instance.state.name == 'running' }

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

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



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/multipart_upload.rb', line 185

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::Waiters::Waiter.new(options).wait({})
end