32 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|