class ActiveStorage::Service::GCSService
def signer
def signer # https://googleapis.dev/ruby/google-cloud-storage/latest/Google/Cloud/Storage/Project.html#signed_url-instance_method lambda do |string_to_sign| iam_client = Google::Apis::IamcredentialsV1::IAMCredentialsService.new scopes = ["https://www.googleapis.com/auth/iam"] iam_client.authorization = Google::Auth.get_application_default(scopes) request = Google::Apis::IamcredentialsV1::SignBlobRequest.new( payload: string_to_sign ) resource = "projects/-/serviceAccounts/#{issuer}" response = iam_client.sign_service_account_blob(resource, request) response.signed_blob end end