/// <summary> /// 加载阿里云oss服务 /// </summary> /// <param name="services"></param> /// <param name="action">委托</param> public static IServiceCollection AddAliYunStorage(this IServiceCollection services, Action <ALiYunStorageConfig> action) { var aliyunConfig = new ALiYunStorageConfig(); action.Invoke(aliyunConfig); return(AddAliYunStorage(services, () => aliyunConfig)); }
/// <summary> /// 得到空间名 /// </summary> /// <param name="qiNiuStorageConfig">七牛配置</param> /// <param name="bucket">空间名</param> /// <param name="optBucket">目标空间</param> /// <returns></returns> internal static string GetBucket(ALiYunStorageConfig qiNiuStorageConfig, string bucket, string optBucket) { if (!string.IsNullOrEmpty(optBucket)) { return(optBucket); } return(GetBucket(qiNiuStorageConfig, bucket)); }
/// <summary> /// /// </summary> public MoveFileParamValidator(ALiYunStorageConfig _aLiYunConfig) { RuleFor(x => x.OptBucket).Must(x => !string.IsNullOrEmpty(x)).WithMessage("目标空间不能为空"); RuleFor(x => x.SourceKey).Must(x => !string.IsNullOrEmpty(x)).WithMessage("源空间key不能为空"); RuleFor(x => x.OptKey).Must(x => !string.IsNullOrEmpty(x)).WithMessage("目标文件key不能为空"); RuleFor(x => x.OptKey) .Must((item, _) => !(Core.Tools.GetBucket(_aLiYunConfig, item.PersistentOps.Bucket) == Core.Tools.GetBucket(_aLiYunConfig, item.PersistentOps.Bucket, item.OptBucket) && item.SourceKey == item.OptKey)) .WithMessage("目标文件不能与源文件一致"); }
/// <summary> /// 得到空间名 /// </summary> /// <param name="aliyunConfig">阿里云配置</param> /// <param name="bucket">空间名</param> /// <returns></returns> internal static string GetBucket(ALiYunStorageConfig aliyunConfig, string bucket) { if (string.IsNullOrEmpty(bucket) && string.IsNullOrEmpty(aliyunConfig.DefaultBucket)) { throw new BusinessException("请选择存储空间"); } if (!string.IsNullOrEmpty(bucket)) { return(bucket); } return(aliyunConfig.DefaultBucket); }
/// <summary> /// 得到空间区域 /// </summary> /// <param name="aliyunConfig">阿里云存储配置</param> /// <param name="zone">自定义空间区域</param> /// <param name="defaultZone">默认空间设置</param> /// <returns></returns> internal static ZoneEnum GetZone(ALiYunStorageConfig aliyunConfig, int?zone, Func <ZoneEnum> defaultZone = null) { if (zone == null && aliyunConfig.DefaultZones == null) { if (defaultZone == null) { throw new BusinessException("请选择存储空间区域信息"); } return(defaultZone.Invoke()); } if (zone != null) { return((ZoneEnum)zone.Value); } return(aliyunConfig.DefaultZones.Value); }
/// <summary> /// 得到分片大小 /// </summary> /// <param name="aliyunConfig">阿里云配置</param> /// <param name="chunkUnit">分片大小</param> /// <param name="defaultChunkUnit">默认分片大小</param> /// <returns></returns> internal static ChunkUnit GetChunkUnit( ALiYunStorageConfig aliyunConfig, ChunkUnit chunkUnit, Func <ChunkUnit> defaultChunkUnit = null) { if (chunkUnit == null && aliyunConfig.ChunkUnit == null) { if (defaultChunkUnit == null) { throw new BusinessException <string>("未设置分片大小", HttpStatus.Err.Name); } return(defaultChunkUnit.Invoke()); } if (chunkUnit != null) { return(chunkUnit); } return(aliyunConfig.ChunkUnit); }
/// <summary> /// /// </summary> /// <param name="aliyunConfig"></param> public StorageProvider(ALiYunStorageConfig aliyunConfig) : base(aliyunConfig) { _aLiYunConfig = aliyunConfig; }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="aliyunConfig"></param> public StorageProvider(ILogger <StorageProvider> logger, ALiYunStorageConfig aliyunConfig) : this( aliyunConfig, logger) { }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="aliyunConfig"></param> public StorageProvider(ALiYunStorageConfig aliyunConfig, ILogger logger) : base(aliyunConfig) { _logger = logger; _aLiYunConfig = aliyunConfig; }
public PictureProvider(ILogger <PictureProvider> logger, ALiYunStorageConfig aLiYunStorageConfig) : base( aLiYunStorageConfig) { this._logger = logger; _storageProvider = new StorageProvider(aLiYunStorageConfig, logger); }
public BucketProvider(ALiYunStorageConfig aliyunConfig) { _aLiYunConfig = aliyunConfig; }
public BucketProvider(ALiYunStorageConfig aliyunConfig, ILogger <BucketProvider> logger = null) { _logger = logger; _aLiYunConfig = aliyunConfig; }
/// <summary> /// /// </summary> public BaseStorageProvider(ALiYunStorageConfig aLiYunStorageConfig) { _aLiYunStorageConfig = aLiYunStorageConfig; aLiYunStorageConfig.Check("阿里云存储配置异常", HttpStatus.Err.Name); }
public PictureProvider(ALiYunStorageConfig aLiYunStorageConfig) : base(aLiYunStorageConfig) { _storageProvider = new StorageProvider(aLiYunStorageConfig); }