Friday 26 October 2018

Create Dynamic CSV with custom data, Stored in tmp directory and upload to AWS S3 Bucket without any rails uploder method.

1. Add gem "aws-sdk-s3" and bundle install
 
  require 'aws-sdk-s3'
  # AWS S3 bucket upload method
  def self.upload_csv_to_s3_bucket
    s3 = Aws::S3::Resource.new(region: REGION_S3, access_key_id: ACCESS_KEY_ID_S3, secret_access_key: SECRECT_ACCESS_KEY_S3)
    file = "#{Rails.root}/tmp/file_name_#{Date.today}.csv"
    name = File.basename(file)
    bucket = BUCKET_S3
    obj = s3.bucket(bucket).object(name)
    metadata = {"answer" => "42"}
    obj.upload_file(file, metadata: metadata)
    # this below line of code used to print file name and S3 File ULR
    bucket = s3.bucket(bucket)
    bucket.objects.limit(50).each do |item|
      puts "Name:  #{item.key}"
      puts "URL:   #{item.presigned_url(:get)}"
    end
  end
 
  def self.csv_generate(header, total_with_times, account_id, file_name)
    begin
    result = CSV.generate(headers: true) do |csv|
      csv << header
      total_with_times.each do |val|
        csv << val
      end
    end
    # Delete old CSV file for creating new one
    File.delete("#{Rails.root}/tmp/#{ file_name }_#{ Date.today - 1.days }.csv") rescue ''
    # Creating new CSV file for all accounts
    File.open("#{Rails.root}/tmp/#{ file_name }_#{ Date.today }.csv", 'w:UTF-8') { |file| file.write(result)}
    upload_csv_to_s3_bucket
  rescue Exception => e
    puts "<<<>>>>>> | #{e.message}| <<<<<<<>>>>>"
  end
  

Revert last commit or second last and more....

 Git revert commit_id -m 1 this command willl revert last commit  Git revert commit_id -m 2 this command will revert second commit with same...