Sha256: 4c5a09a68e55c2244db001a7ce88aa1c324e0e6144d35af8009f85a923ac7974

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module CarrierWave
  module Storage
    class UcloudFile < CarrierWave::SanitizedFile
      attr_reader :path, :bucket

      def initialize(uploader, base, path)
        @uploader = uploader
        @path     = path
        @base     = base
        @bucket   = ::CarrierWave::Ucloud::Bucket.new(uploader)
      end

      ##
      # === Returns
      #
      # [Boolean] Whether the file exists
      #
      def exists?
        bucket.exists?(path)
      end

      def read
        response = bucket.get(path)
        @headers = response.headers.deep_transform_keys { |k| k.underscore.to_sym rescue key }
        response.body
      end

      def delete
        bucket.delete(path)
      end

      def url
        bucket.url(path)
      end

      def store(file, headers = {})
        bucket.put(path, file, headers)
      end

      def content_type
        headers[:content_type]
      end

      def content_type=(new_content_type)
        headers[:content_type] = new_content_type
      end

      def headers
        @headers ||= {}
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carrierwave_ucloud-0.2.3 lib/carrierwave/storage/ucloud_file.rb