Class: S3MediaServerApi::AwsFile

Inherits:
Object
  • Object
show all
Defined in:
lib/s3_media_server_api/aws_file.rb

Defined Under Namespace

Classes: AwsFileError, CompleteUploadError, FileCreationError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ AwsFile

Returns a new instance of AwsFile.



4
5
6
# File 'lib/s3_media_server_api/aws_file.rb', line 4

def initialize(response)
  @params = response[:data]
end

Class Method Details

.complete_upload(uuid) ⇒ Object

completes multipart upload parameters: uuid - file uuid



88
89
90
91
92
# File 'lib/s3_media_server_api/aws_file.rb', line 88

def complete_upload(uuid)
  response = AsynkRequest.sync_request(base_path, :complete_upload, uuid: uuid)
  raise CompleteUploadError.message_from_asynk_response(response) unless response.success?
  AwsFile.new(response)
end

.create_from_path(file_path) ⇒ Object

creates file on s3_media_server parameters: file_path - path on file system to file

returns: response with created file



54
55
56
57
58
59
60
61
62
63
# File 'lib/s3_media_server_api/aws_file.rb', line 54

def create_from_path(file_path)
  params = {
             size: File.size(file_path),
             mime_type: file_mime_type(file_path),
             name: File.basename(file_path)
           }
  response = AsynkRequest.sync_request(base_path, :create, params)
  raise FileCreationError.message_from_asynk_response(response) unless response.success?
  AwsFile.new(response)
end

.file_exists(uuid) ⇒ Object



94
95
96
# File 'lib/s3_media_server_api/aws_file.rb', line 94

def file_exists(uuid)
  AsynkRequest.async_request(base_path, :file_exists, uuid: uuid)
end

.get_signed_upload_url(uuid, part_number) ⇒ Object

fetches signed upload url to upload specified part number parameters: uuid - file uuid

part_numer - part number that will be uploaded

returns: signed upload url



80
81
82
83
# File 'lib/s3_media_server_api/aws_file.rb', line 80

def get_signed_upload_url(uuid, part_number)
  response = AsynkRequest.sync_request(:uploads, :show, aws_file_uuid: uuid, uuid: part_number)
  response[:data][:upload_url]
end

.resolve(uuid) ⇒ Object

fetches media file parameters: uuid - uuid of file

returns: response with file information



70
71
72
# File 'lib/s3_media_server_api/aws_file.rb', line 70

def resolve(uuid)
  AsynkRequest.sync_request(base_path, :resolve, uuid: uuid)
end

Instance Method Details

#as_hashObject



40
41
42
# File 'lib/s3_media_server_api/aws_file.rb', line 40

def as_hash
  @params
end

#default_part_sizeObject



24
25
26
# File 'lib/s3_media_server_api/aws_file.rb', line 24

def default_part_size
  @params[:default_part_size]
end

#mime_typeObject



16
17
18
# File 'lib/s3_media_server_api/aws_file.rb', line 16

def mime_type
  @params[:mime_type]
end

#nameObject



36
37
38
# File 'lib/s3_media_server_api/aws_file.rb', line 36

def name
  @params[:name]
end

#public_urlObject



32
33
34
# File 'lib/s3_media_server_api/aws_file.rb', line 32

def public_url
  @params[:public_url]
end

#sizeObject



12
13
14
# File 'lib/s3_media_server_api/aws_file.rb', line 12

def size
  @params[:size]
end

#stateObject



28
29
30
# File 'lib/s3_media_server_api/aws_file.rb', line 28

def state
  @params[:state]
end

#uploads_countObject



20
21
22
# File 'lib/s3_media_server_api/aws_file.rb', line 20

def uploads_count
  @params[:uploads_count]
end

#uuidObject



8
9
10
# File 'lib/s3_media_server_api/aws_file.rb', line 8

def uuid
  @params[:uuid]
end