using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using AlibabaCloud.OpenApiClient.Models; using AlibabaCloud.SDK.Vod20170321; using AlibabaCloud.SDK.Vod20170321.Models; using AlibabaCloud.TeaUtil.Models; using Aliyun.OSS.Common; using Aliyun.OSS; using Microsoft.Extensions.DependencyInjection; using System.Security.AccessControl; using Aliyun.Credentials.Models; using System.IO; using Learn.Archives.Core.Common; namespace Learn.Archives.Core.Common.Expand { public class AliyunOSSConfig { /// /// id /// public string AccessKeyId { get; set; } /// ///密钥 /// public string AccessKeySecret { get; set; } /// /// 区域Url /// public string Region { get; set; } /// /// 筒域名 /// public string BucketDomain { get; set; } /// /// 桶名称 /// public string BucketName { get; set; } public string Endpoint { get; set; } = "oss-cn-chengdu.aliyuncs.com"; } /// /// 阿里云 视频点播拓展 /// public static class AliyunOSSExpand { /// /// 使用阿里云 vod拓展 /// /// /// public static void AddAliyunOSS(this IServiceCollection service) { Console.WriteLine($"{DateTime.Now}=>初始化 阿里云OSS"); AliyunOSSConfig config = new() { // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 AccessKeyId = AppCommon.Config.AliyunOSS.AccessKeyId, // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 AccessKeySecret = AppCommon.Config.AliyunOSS.AccessKeySecret, Endpoint = AppCommon.Config.AliyunOSS.Endpoint, Region = AppCommon.Config.AliyunOSS.Region, };// 创建ClientConfiguration实例,按照您的需要修改默认参数。 var conf = new ClientConfiguration(); // 设置v4签名。 conf.SignatureVersion = SignatureVersion.V4; // 创建OssClient实例。 var oss = new OssClient(config.Endpoint, config.AccessKeyId, config.AccessKeySecret, conf); oss.SetRegion(config.Region); service.AddSingleton(oss); } /// /// 上传文件 /// /// /// 视频实体片段 // public static void AddVideoQuestionUrl(this OssClient oss, List fileArr) // { // var cached = new HashSet(); // foreach (var item in fileArr) // { // try // { // var isDebug = false; //#if DEBUG // isDebug = true; //#endif // var path = (isDebug ? "debug/" : string.Empty) + item.VideoTaskId.ToString() + "/" + Path.GetFileName(item.FilePath); // if (cached.Contains(item.FilePath)) // { // item.PPTImageUrl = AppCommon.Config.AliyunOSS.BucketDomain + "/" + path; // continue; // } // using var file = File.OpenRead(item.FilePath); // var result = oss // .PutObject( // AppCommon.Config.AliyunOSS.BucketName, // path, // file); // item.PPTImageUrl = AppCommon.Config.AliyunOSS.BucketDomain + "/" + path; // cached.Add(item.FilePath); // continue; // } // catch (Exception) // { // } // } // } } }