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
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
very informative blog and useful article thank you for sharing with us , keep posting learn more Ruby on Rails Online Course India
ReplyDeleteWhy launch an offshore development center in Ukraine? Here's everything you need to know about offshore center setup
ReplyDelete