namespace Spacebar.Interop.Cdn.Signing;
public class CdnSignature {
public string Path { get; set; } = string.Empty;
public string? IpAddress { get; set; } = string.Empty;
public string? UserAgent { get; set; } = string.Empty;
}
public class CdnSignatureResult : CdnSignature {
// hm
public required string Signature { get; set; }
// is
public required DateTimeOffset CreatedAt { get; set; }
// ex
public required DateTimeOffset ExpiresAt { get; set; }
public string GetSignedPath() {
return $"{Path}?is={CreatedAt.ToUnixTimeMilliseconds():x}&ex={ExpiresAt.ToUnixTimeMilliseconds():x}&hm={Signature}";
}
}