s3_media_server_api 0.1.0 → 0.1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/s3_media_server_api/cache.rb +9 -0
- data/lib/s3_media_server_api/config.rb +30 -16
- data/lib/s3_media_server_api/media/common_media_api.rb +12 -5
- data/lib/s3_media_server_api/media/document.rb +1 -1
- data/lib/s3_media_server_api/media/image.rb +2 -2
- data/lib/s3_media_server_api/media/video.rb +7 -7
- data/lib/s3_media_server_api/uploader.rb +1 -1
- data/lib/s3_media_server_api/version.rb +1 -1
- data/lib/s3_media_server_api.rb +1 -13
- data/s3_media_server_api-0.1.0.gem +0 -0
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 38ba4e51274bac69d7af53286c338b5a216f9240
         | 
| 4 | 
            +
              data.tar.gz: 13dcaede9a9a023111ba792322ab8cab7d2b882c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f77b81060a59a2a27aae2ae8c76a1b80549e558ab830ce1742599ab587a66b9a63a4360de7ae23cd7bac31215b48f25bac65d08d14f9dd6764ab2d3bff99550b
         | 
| 7 | 
            +
              data.tar.gz: fcbd78d7989a66cbf90b35ac90e20b2b3a565132135066791a1d627697d4189166b10e6ded29a22ed4c6f575eca12b16d417ae67e0c3b3f223f63b6e9a2dd606
         | 
| @@ -2,25 +2,39 @@ require 'yaml' | |
| 2 2 |  | 
| 3 3 | 
             
            module S3MediaServerApi
         | 
| 4 4 | 
             
              class ConfigError < S3MediaServerApiError; end
         | 
| 5 | 
            -
              #
         | 
| 6 | 
            -
              # By default 4 threads is used for file uploading. To change
         | 
| 7 | 
            -
              # this value you can create config/s3_media_server_api.yml and specify
         | 
| 8 | 
            -
              # upload_thread_count
         | 
| 9 | 
            -
              #
         | 
| 10 | 
            -
              # Example
         | 
| 11 | 
            -
              #   prosuction:
         | 
| 12 | 
            -
              #     upload_thread_count: 10
         | 
| 13 | 
            -
              #
         | 
| 14 5 | 
             
              class Config
         | 
| 15 | 
            -
                 | 
| 6 | 
            +
                class << self
         | 
| 7 | 
            +
                  def add_config(name, default_value = nil)
         | 
| 16 8 |  | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
                     | 
| 9 | 
            +
                    define_singleton_method "#{name}=".to_sym do |value|
         | 
| 10 | 
            +
                      instance_variable_set("@#{name}".to_sym,value)
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    define_singleton_method "#{name}".to_sym do
         | 
| 14 | 
            +
                      value = instance_variable_get(:"@#{name}")
         | 
| 15 | 
            +
                      raise ConfigError.new("Key: '#{name}' cannot be nil.")  if @required_keys.include?(name.to_sym) && value.nil?
         | 
| 16 | 
            +
                      value
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    self.send("#{name}=".to_sym, default_value)
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def required(*args)
         | 
| 23 | 
            +
                    @required_keys = args
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  def configure
         | 
| 27 | 
            +
                    yield self
         | 
| 28 | 
            +
                    @required_keys.each do |key|
         | 
| 29 | 
            +
                      raise ConfigError.new("Key: #{key} cannot be nil.") if instance_variable_get(:"@#{key}").nil?
         | 
| 30 | 
            +
                    end
         | 
| 22 31 | 
             
                  end
         | 
| 23 | 
            -
                  @upload_thread_count ||= 4
         | 
| 24 32 | 
             
                end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                add_config :mocked
         | 
| 35 | 
            +
                add_config :cache_class, S3MediaServerApi::Cache
         | 
| 36 | 
            +
                add_config :upload_thread_count, 4
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                required :mocked, :cache_class, :upload_thread_count
         | 
| 25 39 | 
             
              end
         | 
| 26 40 | 
             
            end
         | 
| @@ -14,21 +14,25 @@ module S3MediaServerApi | |
| 14 14 | 
             
                  end
         | 
| 15 15 |  | 
| 16 16 | 
             
                  def uuid
         | 
| 17 | 
            -
                    @params[:uuid]
         | 
| 17 | 
            +
                    @params[:uuid] if exist?
         | 
| 18 18 | 
             
                  end
         | 
| 19 19 |  | 
| 20 20 | 
             
                  def name
         | 
| 21 | 
            -
                    @params[:name]
         | 
| 21 | 
            +
                    @params[:name] if exist?
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 |  | 
| 24 24 | 
             
                  def size
         | 
| 25 | 
            -
                    @params[:size]
         | 
| 25 | 
            +
                    @params[:size] if exist?
         | 
| 26 26 | 
             
                  end
         | 
| 27 27 |  | 
| 28 | 
            -
                  def as_hash
         | 
| 28 | 
            +
                  def as_hash if exist?
         | 
| 29 29 | 
             
                    @params
         | 
| 30 30 | 
             
                  end
         | 
| 31 31 |  | 
| 32 | 
            +
                  def exist?
         | 
| 33 | 
            +
                    !@params.nil?
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 32 36 | 
             
                  class << self
         | 
| 33 37 | 
             
                    #
         | 
| 34 38 | 
             
                    # creates media file
         | 
| @@ -58,7 +62,10 @@ module S3MediaServerApi | |
| 58 62 | 
             
                    # returns: response with file information
         | 
| 59 63 | 
             
                    #
         | 
| 60 64 | 
             
                    def resolve(uuid)
         | 
| 61 | 
            -
                       | 
| 65 | 
            +
                      cache_key = "#{media_type}/#{uuid}"
         | 
| 66 | 
            +
                      Config.cache_class.fetch(cache_key) do
         | 
| 67 | 
            +
                        AsynkRequest.sync_request(base_path, :resolve, uuid: uuid)
         | 
| 68 | 
            +
                      end
         | 
| 62 69 | 
             
                    end
         | 
| 63 70 | 
             
                    #
         | 
| 64 71 | 
             
                    # this method should be used to send custom synchronous request to
         | 
| @@ -27,11 +27,11 @@ module S3MediaServerApi | |
| 27 27 | 
             
                  end
         | 
| 28 28 |  | 
| 29 29 | 
             
                  def source
         | 
| 30 | 
            -
                    ImageObject.new(@params[:source])
         | 
| 30 | 
            +
                    ImageObject.new(@params[:source]) if exist?
         | 
| 31 31 | 
             
                  end
         | 
| 32 32 |  | 
| 33 33 | 
             
                  def thumb
         | 
| 34 | 
            -
                    ImageObject.new(@params[:thumb])
         | 
| 34 | 
            +
                    ImageObject.new(@params[:thumb]) if exist?
         | 
| 35 35 | 
             
                  end
         | 
| 36 36 |  | 
| 37 37 | 
             
                  class << self
         | 
| @@ -26,31 +26,31 @@ module S3MediaServerApi | |
| 26 26 | 
             
                  end
         | 
| 27 27 |  | 
| 28 28 | 
             
                  def preview
         | 
| 29 | 
            -
                    @params[:preview]
         | 
| 29 | 
            +
                    @params[:preview] if exist?
         | 
| 30 30 | 
             
                  end
         | 
| 31 31 |  | 
| 32 32 | 
             
                  def duration
         | 
| 33 | 
            -
                    @params[:duration]
         | 
| 33 | 
            +
                    @params[:duration] if exist?
         | 
| 34 34 | 
             
                  end
         | 
| 35 35 |  | 
| 36 36 | 
             
                  def transcoded
         | 
| 37 | 
            -
                    @params[:transcoded]
         | 
| 37 | 
            +
                    @params[:transcoded] if exist?
         | 
| 38 38 | 
             
                  end
         | 
| 39 39 |  | 
| 40 40 | 
             
                  def embed_url
         | 
| 41 | 
            -
                    @params[:embed_url]
         | 
| 41 | 
            +
                    @params[:embed_url] if exist?
         | 
| 42 42 | 
             
                  end
         | 
| 43 43 |  | 
| 44 44 | 
             
                  def provider
         | 
| 45 | 
            -
                    @params[:provider]
         | 
| 45 | 
            +
                    @params[:provider] if exist?
         | 
| 46 46 | 
             
                  end
         | 
| 47 47 |  | 
| 48 48 | 
             
                  def screenshots
         | 
| 49 | 
            -
                    @params[:screenshots].map { |screenshot| Image::ImageObject.new(screenshot) }
         | 
| 49 | 
            +
                    @params[:screenshots].map { |screenshot| Image::ImageObject.new(screenshot) } if exist?
         | 
| 50 50 | 
             
                  end
         | 
| 51 51 |  | 
| 52 52 | 
             
                  def versions
         | 
| 53 | 
            -
                    @params[:versions].map { |version| Version.new(version) }
         | 
| 53 | 
            +
                    @params[:versions].map { |version| Version.new(version) } if exist?
         | 
| 54 54 | 
             
                  end
         | 
| 55 55 |  | 
| 56 56 | 
             
                  class << self
         | 
| @@ -29,7 +29,7 @@ module S3MediaServerApi | |
| 29 29 | 
             
                    aws_file_uuid = file.uuid
         | 
| 30 30 | 
             
                    uploads_count = file.uploads_count
         | 
| 31 31 | 
             
                    parts = compute_parts(file_path, default_part_size)
         | 
| 32 | 
            -
                    Parallel.each(parts, in_threads: S3MediaServerApi.upload_thread_count) do |part|
         | 
| 32 | 
            +
                    Parallel.each(parts, in_threads: S3MediaServerApi::Config.upload_thread_count) do |part|
         | 
| 33 33 | 
             
                      signed_upload_url = AwsFile.get_signed_upload_url(aws_file_uuid, part[:part_number])
         | 
| 34 34 |  | 
| 35 35 | 
             
                      raise PartUploadError.new("Part #{part[:part_number]} wasn't uploaded") unless upload_part(signed_upload_url, part[:body].read)
         | 
    
        data/lib/s3_media_server_api.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require "s3_media_server_api/version"
         | 
| 2 2 | 
             
            require "s3_media_server_api/error"
         | 
| 3 | 
            +
            require "s3_media_server_api/cache"
         | 
| 3 4 | 
             
            require "s3_media_server_api/config"
         | 
| 4 5 | 
             
            require "s3_media_server_api/uploader"
         | 
| 5 6 | 
             
            require "s3_media_server_api/file_part"
         | 
| @@ -8,17 +9,4 @@ require "s3_media_server_api/media" | |
| 8 9 | 
             
            require "s3_media_server_api/asynk_request"
         | 
| 9 10 |  | 
| 10 11 | 
             
            module S3MediaServerApi
         | 
| 11 | 
            -
             | 
| 12 | 
            -
              class << self
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                def upload_thread_count
         | 
| 15 | 
            -
                  config.upload_thread_count
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                private
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                  def config
         | 
| 21 | 
            -
                    @@config ||= Config.new
         | 
| 22 | 
            -
                  end
         | 
| 23 | 
            -
              end
         | 
| 24 12 | 
             
            end
         | 
| Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: s3_media_server_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1.0
         | 
| 4 | 
            +
              version: 0.1.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ayrat Badykov
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-07- | 
| 11 | 
            +
            date: 2016-07-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -122,6 +122,7 @@ files: | |
| 122 122 | 
             
            - lib/s3_media_server_api.rb
         | 
| 123 123 | 
             
            - lib/s3_media_server_api/asynk_request.rb
         | 
| 124 124 | 
             
            - lib/s3_media_server_api/aws_file.rb
         | 
| 125 | 
            +
            - lib/s3_media_server_api/cache.rb
         | 
| 125 126 | 
             
            - lib/s3_media_server_api/config.rb
         | 
| 126 127 | 
             
            - lib/s3_media_server_api/error.rb
         | 
| 127 128 | 
             
            - lib/s3_media_server_api/file_part.rb
         | 
| @@ -133,6 +134,7 @@ files: | |
| 133 134 | 
             
            - lib/s3_media_server_api/media/video.rb
         | 
| 134 135 | 
             
            - lib/s3_media_server_api/uploader.rb
         | 
| 135 136 | 
             
            - lib/s3_media_server_api/version.rb
         | 
| 137 | 
            +
            - s3_media_server_api-0.1.0.gem
         | 
| 136 138 | 
             
            - s3_media_server_api.gemspec
         | 
| 137 139 | 
             
            homepage: 
         | 
| 138 140 | 
             
            licenses:
         |