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)
// {
// }
// }
// }
}
}