class Canistor::Storage::Part
Attributes
bucket[RW]
data[RW]
key[RW]
number[RW]
region[RW]
upload_id[RW]
Public Class Methods
new(**attributes)
click to toggle source
# File lib/canistor/storage/part.rb, line 14 def initialize(**attributes) attributes.each do |name, value| send("#{name}=", value) end end
Public Instance Methods
attributes()
click to toggle source
# File lib/canistor/storage/part.rb, line 33 def attributes { region: region, bucket: bucket, key: key, upload_id: upload_id, number: number, digest: digest, etag: etag } end
etag()
click to toggle source
# File lib/canistor/storage/part.rb, line 25 def etag '"' + digest + '"' end
put(context, subject)
click to toggle source
# File lib/canistor/storage/part.rb, line 20 def put(context, subject) write(context.http_request.body.read) context.http_response.signal_headers(200, identity_headers) end
size()
click to toggle source
# File lib/canistor/storage/part.rb, line 29 def size data&.size end
Private Instance Methods
digest()
click to toggle source
# File lib/canistor/storage/part.rb, line 53 def digest @digest ||= Digest::SHA1.hexdigest(data) end
identity_headers()
click to toggle source
# File lib/canistor/storage/part.rb, line 57 def identity_headers { 'x-amz-request-id' => Base64.strict_encode64(SecureRandom.hex(16)), 'x-amz-id' => digest[0, 16], 'x-amz-id-2' => Base64.strict_encode64(digest), 'etag' => etag } end
write(data)
click to toggle source
# File lib/canistor/storage/part.rb, line 49 def write(data) self.data = data end