Files
douyin/storage/StorageConfigurationFingerprint.cs

32 lines
1.3 KiB
C#

using System.Security.Cryptography;
using System.Text;
using dy.net.model.entity;
namespace dy.net.storage
{
public static class StorageConfigurationFingerprint
{
public static string Create(WebDavSettings settings)
{
if (settings == null) return string.Empty;
var canonical = string.Join("\n",
(settings.Endpoint ?? string.Empty).Trim().TrimEnd('/'),
StoragePath.NormalizeRemote(settings.BasePath),
(settings.UserName ?? string.Empty).Trim());
return Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(canonical))).ToLowerInvariant();
}
public static string Create(OpenListSettings settings)
{
if (settings == null) return string.Empty;
var canonical = string.Join("\n",
OpenListClient.NormalizeBaseUrl(settings.Endpoint),
StoragePath.NormalizeRemote(settings.BasePath),
Path.GetFullPath(settings.LocalStagingPath ?? string.Empty),
StoragePath.NormalizeRemote(settings.SourcePath),
(settings.UserName ?? string.Empty).Trim());
return Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(canonical))).ToLowerInvariant();
}
}
}