Module: S3MediaServerApi::Uploader
- Defined in:
- lib/s3_media_server_api/uploader.rb,
lib/s3_media_server_api/file_part.rb
Overview
Module with file uplod finctionality implementation
Defined Under Namespace
Classes: FilePart, PartUploadError, UploaderError
Class Method Summary collapse
-
.upload(file_path) ⇒ Object
uploads file to amazon s3 and create AwsFile object parameter : filepath - file path in file system returns: [AwsFile object].
- .upload_from_url(url) ⇒ Object
Class Method Details
.upload(file_path) ⇒ Object
uploads file to amazon s3 and create AwsFile object parameter : filepath - file path in file system returns: [AwsFile object]
Example
file = S3MediaServerApi::Uploader.upload(/home/vasya/my_awesome_file.awesome)
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/s3_media_server_api/uploader.rb', line 32 def upload(file_path) parts = [] file = AwsFile.create_from_path(file_path) default_part_size = file.default_part_size aws_file_uuid = file.uuid uploads_count = file.uploads_count parts = compute_parts(file_path, default_part_size) Parallel.each(parts, in_threads: S3MediaServerApi::Config.upload_thread_count) do |part| signed_upload_url = AwsFile.get_signed_upload_url(aws_file_uuid, part[:part_number]) raise PartUploadError.new("Part #{part[:part_number]} wasn't uploaded") unless upload_part(signed_upload_url, part[:body].read) end AwsFile.complete_upload(aws_file_uuid) ensure close_all_parts(parts) end |
.upload_from_url(url) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/s3_media_server_api/uploader.rb', line 17 def upload_from_url(url) file = S3MediaServerApi::Downloader.download_by_url(url) upload(file) ensure S3MediaServerApi::Downloader.remove_if_exists(file) end |