Module: MultiVideoStreaming::Utils::S3
- Defined in:
- lib/multi_video_streaming/utils/s3/generate_presign_url.rb,
lib/multi_video_streaming/utils/s3/create_multipart_upload.rb,
lib/multi_video_streaming/utils/s3/complete_multipart_upload.rb,
lib/multi_video_streaming/utils/s3/generate_presign_part_url.rb
Class Method Summary collapse
- .complete_multipart_upload(bucket:, key:, upload_id:, multipart_upload:) ⇒ Object
- .create_multipart_upload(bucket:, key:, content_type:) ⇒ Object
- .generate_presign_part_url(upload_id:, bucket:, part_number:, key:, expires_in:) ⇒ Object
- .generate_presign_url(method:, bucket:, key:, download:, expires_in:) ⇒ Object
Class Method Details
.complete_multipart_upload(bucket:, key:, upload_id:, multipart_upload:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/multi_video_streaming/utils/s3/complete_multipart_upload.rb', line 6 def self.complete_multipart_upload(bucket:, key:, upload_id:, multipart_upload:) raise MultiVideoStreaming::Errors::MissingParam.new('bucket') if bucket.nil? raise MultiVideoStreaming::Errors::MissingParam.new('key') if key.nil? raise MultiVideoStreaming::Errors::MissingParam.new('upload_id') if upload_id.nil? raise MultiVideoStreaming::Errors::MissingParam.new('multipart_upload') if multipart_upload.nil? s3_client = Aws::S3::Client.new( region: ENV['AWS_REGION'], ) s3_client.complete_multipart_upload( bucket:, key:, upload_id:, multipart_upload: ) end |
.create_multipart_upload(bucket:, key:, content_type:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/multi_video_streaming/utils/s3/create_multipart_upload.rb', line 6 def self.create_multipart_upload(bucket:, key:, content_type: ) raise MultiVideoStreaming::Errors::MissingParam.new('bucket') if bucket.nil? raise MultiVideoStreaming::Errors::MissingParam.new('key') if key.nil? raise MultiVideoStreaming::Errors::MissingParam.new('content_type') if content_type.nil? s3_client = Aws::S3::Client.new( region: ENV['AWS_REGION'], ) s3_client.create_multipart_upload( bucket:, key:, content_type: ) end |
.generate_presign_part_url(upload_id:, bucket:, part_number:, key:, expires_in:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/multi_video_streaming/utils/s3/generate_presign_part_url.rb', line 6 def self.generate_presign_part_url(upload_id:, bucket:, part_number:, key:, expires_in:) raise MultiVideoStreaming::Errors::MissingParam.new('upload_id') if upload_id.nil? raise MultiVideoStreaming::Errors::MissingParam.new('part_number') if part_number.nil? raise MultiVideoStreaming::Errors::MissingParam.new('bucket') if bucket.nil? raise MultiVideoStreaming::Errors::MissingParam.new('key') if key.nil? signer = Aws::S3::Presigner.new signer.presigned_url( :upload_part, bucket:, key:, upload_id:, part_number:, expires_in: ) end |
.generate_presign_url(method:, bucket:, key:, download:, expires_in:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/multi_video_streaming/utils/s3/generate_presign_url.rb', line 6 def self.generate_presign_url(method:, bucket:, key:, download:, expires_in: ) methods = { :get => :get_object, :put => :put_object, :delete => :delete_object } method_to_generate_presign_url = methods[method] raise MultiVideoStreaming::Errors::InvalidS3MethodName.new(method) if method_to_generate_presign_url.nil? signer = Aws::S3::Presigner.new if download signer.presigned_url(method_to_generate_presign_url, bucket: bucket, key: key, expires_in: expires_in, whitelist_headers: ['response-content-disposition'], response_content_disposition: 'attachment') else signer.presigned_url(method_to_generate_presign_url, bucket: bucket, key: key, expires_in: expires_in) end end |