module UploaderHelperS3

Protected Instance Methods

delete_uploaded_files() click to toggle source
# File lib/mrpin/core/uploaders/carrierwave/uploader_helper_s3.rb, line 64
def delete_uploaded_files
  url_uploaders_map.each do |field_name, uploader_field|
    url = self.send(field_name)
    delete_file_from_s3(url)
  end
end
try_update_uploaded_files() click to toggle source

Methods

# File lib/mrpin/core/uploaders/carrierwave/uploader_helper_s3.rb, line 28
def try_update_uploaded_files
  url_uploaders_map.each do |field_name, uploader_field|

    next unless self.send(uploader_field).present?

    begin
      file_to_upload = self.send(uploader_field).file.file.to_s

      # delete old file if was uploaded
      old_url        = self.send(field_name)

      delete_file_from_s3(old_url)

      # upload new file
      path = get_path_for_uploader_absolute(field_name)
      name = get_upload_file_name(field_name, file_to_upload)

      s3_key = File.join(path, name)

      s3_file_info = aws_uploader.upload_file_to_s3(file_to_upload, AWSUploader::BUCKET_NAME_DEFAULT, s3_key)

      self.send("#{field_name}=", s3_file_info.url_cloud_front)

    rescue Exception => e
      errors[:base] << e.to_s

    ensure
      file_path = File.dirname(file_to_upload)

      FileUtils.rm_rf(file_path) if File.exist?(file_path)
    end

  end
end

Private Instance Methods

aws_uploader() click to toggle source

Properties

# File lib/mrpin/core/uploaders/carrierwave/uploader_helper_s3.rb, line 19
def aws_uploader
  @aws_uploader ||= AppInfo.instance.aws_uploader
end
delete_file_from_s3(url) click to toggle source
# File lib/mrpin/core/uploaders/carrierwave/uploader_helper_s3.rb, line 74
def delete_file_from_s3(url)
  unless url.nil? || url.blank?
    s3_url = aws_uploader.get_s3_url(url)
    aws_uploader.delete_file_from_s3_by_uri(AWSUploader::BUCKET_NAME_DEFAULT, s3_url)
  end
end