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



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

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



58
59
60
61
62
63
64
65
66
67
# File 'lib/s3_media_server_api/aws_file.rb', line 58

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



98
99
100
# File 'lib/s3_media_server_api/aws_file.rb', line 98

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



84
85
86
87
# File 'lib/s3_media_server_api/aws_file.rb', line 84

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



74
75
76
# File 'lib/s3_media_server_api/aws_file.rb', line 74

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

#exists?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/s3_media_server_api/aws_file.rb', line 44

def exists?
  !@params.empty?
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