using System;
using Microsoft.Extensions.Configuration;

namespace Dpz.Core.Infrastructure;

public class OwnerService(IConfiguration configuration)
{
    public string UpyunHost => configuration["upyun:Host"] ?? string.Empty;

    public string S3Host => configuration["S3:CdnHost"] ?? string.Empty;

    public bool IsOwnCdnImage(string? imageUrl)
    {
        if (
            (string.IsNullOrWhiteSpace(UpyunHost) && string.IsNullOrWhiteSpace(S3Host))
            || string.IsNullOrWhiteSpace(imageUrl)
        )
        {
            return false;
        }

        try
        {
            var imageUri = new Uri(imageUrl, UriKind.Absolute);
            var cdnUri = string.IsNullOrWhiteSpace(UpyunHost)
                ? null
                : new Uri(UpyunHost, UriKind.Absolute);
            var cdnUri2 = string.IsNullOrWhiteSpace(S3Host)
                ? null
                : new Uri(S3Host, UriKind.Absolute);
            return string.Equals(imageUri.Host, cdnUri?.Host, StringComparison.OrdinalIgnoreCase)
                || string.Equals(imageUri.Host, cdnUri2?.Host, StringComparison.OrdinalIgnoreCase);
        }
        catch
        {
            return false;
        }
    }
}
评论加载中...