package com.nanri.aiimage.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; /** * 设备日志对象存储配置:指向主机B 独立部署的 MinIO 实例(非业务 MinIO)。 * *

日志体积大、只保留 7 天,独立实例便于单独设生命周期规则与容量管理, * 不挤占业务桶(nanri-ai-images 等)。endpoint 为空时上报接口直接失败, * 不做静默回退(避免日志悄悄落到其他存储上而无人知情)。 */ @Data @ConfigurationProperties(prefix = "aiimage.device-log-oss") public class DeviceLogOssProperties { private String endpoint; private String accessKeyId; private String accessKeySecret; private String bucket; /** * 日志保留天数:查询侧按此过滤(早于今天的 N-1 天不展示), * 对象过期由 MinIO 桶生命周期规则在部署时同步设置(两侧口径保持一致)。 */ private Integer retentionDays; public boolean configured() { return endpoint != null && !endpoint.isBlank() && accessKeyId != null && !accessKeyId.isBlank() && accessKeySecret != null && !accessKeySecret.isBlank() && bucket != null && !bucket.isBlank(); } public int retentionDaysOrDefault() { return retentionDays == null || retentionDays < 1 ? 7 : retentionDays; } }