class Uppy::S3Multipart::Client
Attributes
bucket[R]
Public Class Methods
new(bucket:)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 8 def initialize(bucket:) @bucket = bucket end
Public Instance Methods
abort_multipart_upload(upload_id:, key:, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 57 def abort_multipart_upload(upload_id:, key:, **options) multipart_upload = multipart_upload(upload_id, key) multipart_upload.abort(**options) {} end
complete_multipart_upload(upload_id:, key:, parts:, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 39 def complete_multipart_upload(upload_id:, key:, parts:, **options) multipart_upload = multipart_upload(upload_id, key) multipart_upload.complete( multipart_upload: { parts: parts }, **options ) { location: object_url(key: key) } end
create_multipart_upload(key:, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 12 def create_multipart_upload(key:, **options) multipart_upload = object(key).initiate_multipart_upload(**options) { upload_id: multipart_upload.id, key: multipart_upload.object_key } end
list_parts(upload_id:, key:, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 18 def list_parts(upload_id:, key:, **options) multipart_upload = multipart_upload(upload_id, key) multipart_parts = multipart_upload.parts(**options).to_a multipart_parts.map do |part| { part_number: part.part_number, size: part.size, etag: part.etag } end end
object_url(key:, public: nil, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 49 def object_url(key:, public: nil, **options) if public object(key).public_url(**options) else object(key).presigned_url(:get, **options) end end
prepare_upload_part(upload_id:, key:, part_number:, **options)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 27 def prepare_upload_part(upload_id:, key:, part_number:, **options) presigned_url = presigner.presigned_url "upload_part", bucket: bucket.name, key: object(key).key, upload_id: upload_id, part_number: part_number, body: "", **options { url: presigned_url } end
Private Instance Methods
client()
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 78 def client bucket.client end
multipart_upload(upload_id, key)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 66 def multipart_upload(upload_id, key) object(key).multipart_upload(upload_id) end
object(key)
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 70 def object(key) bucket.object(key) end
presigner()
click to toggle source
# File lib/uppy/s3_multipart/client.rb, line 74 def presigner Aws::S3::Presigner.new(client: client) end