Class: Fileboost::SignatureGenerator
- Inherits:
-
Object
- Object
- Fileboost::SignatureGenerator
- Defined in:
- lib/fileboost/signature_generator.rb
Class Method Summary collapse
Class Method Details
.generate(asset_path:, params: {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fileboost/signature_generator.rb', line 6 def self.generate(asset_path:, params: {}) # Sort parameters for consistent signature generation sorted_params = params.sort.to_h query_string = sorted_params.map { |k, v| "#{k}=#{v}" }.join("&") # Create the signing string: project_id:asset_path:sorted_query_params signing_string = [ Fileboost.config.project_id, asset_path, query_string ].join(":") # Generate HMAC-SHA256 signature for secure authentication with Fileboost.dev digest = OpenSSL::HMAC.digest("SHA256", Fileboost.config.token, signing_string) # Use URL-safe base64 encoding and remove padding for maximum URL compatibility Base64.urlsafe_encode64(digest, padding: false) end |