Class: CircleciTools::S3UploadService

Inherits:
Object
  • Object
show all
Defined in:
lib/circleci-tools/s3_upload_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(bucket_name, logger: Logger.new(STDOUT)) ⇒ S3UploadService

Returns a new instance of S3UploadService.



6
7
8
9
10
# File 'lib/circleci-tools/s3_upload_service.rb', line 6

def initialize(bucket_name, logger: Logger.new(STDOUT))
  @bucket_name = bucket_name
  @logger = logger
  @s3_client = Aws::S3::Client.new
end

Instance Method Details

#upload_file(file_path, s3_key) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/circleci-tools/s3_upload_service.rb', line 12

def upload_file(file_path, s3_key)
  @logger.info("Uploading #{file_path} to S3 bucket #{@bucket_name} with key #{s3_key}...")
  @s3_client.put_object(bucket: @bucket_name, key: "circleci/#{s3_key}", body: File.read(file_path))
  @logger.info("Uploaded #{file_path} to S3 bucket #{@bucket_name} with key #{s3_key}.")
rescue Aws::S3::Errors::ServiceError => e
  @logger.error("Failed to upload #{file_path} to S3: #{e.message}")
end