76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/porky_lib/file_service.rb', line 76
def write_data(data, bucket_name, key_id, options = {})
raise FileServiceError, 'Invalid input. One or more input values is nil' if input_invalid?(data, bucket_name, key_id)
raise FileSizeTooLargeError, "Data size is larger than maximum allowed size of #{max_file_size}" if data_size_invalid?(data)
file_key = if options.key?(:file_name)
options[:file_name]
else
generate_file_key(options)
end
tempfile = encrypt_file_contents(data, key_id, file_key, options)
begin
perform_upload(bucket_name, file_key, tempfile, options)
rescue Aws::Errors::ServiceError => e
raise FileServiceError, "Attempt to upload a file to S3 failed.\n#{e.message}"
end
tempfile.unlink
file_key
end
|