黄贺彬 6 роки тому
батько
коміт
7af6310796

+ 11 - 0
HaBookCms.AzureStorage/AzureBlob/Container/BlobContainer.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HaBookCms.AzureStorage.AzureBlob.Container
+{
+    public abstract class BlobContainer
+    {
+        public string Container { get; private set; } = "DefaultContainer";
+    }
+}

+ 11 - 0
HaBookCms.AzureStorage/AzureBlob/Container/FileContainer.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HaBookCms.AzureStorage.AzureBlob.Container
+{
+    public class FileContainer :BlobContainer
+    {
+        public string Container { get; private set; } = "FileContainer";
+    }
+}

+ 11 - 0
HaBookCms.AzureStorage/AzureBlob/Container/ImageContainer.cs

@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HaBookCms.AzureStorage.AzureBlob.Container
+{
+   public class ImageContainer :BlobContainer
+    {
+        public string Container { get; private set; } = "ImageContainer";
+    }
+}

+ 6 - 3
HaBookCms.AzureStorage/AzureBlob/Implement/AzureBlobDBRepository.cs

@@ -1,4 +1,5 @@
-using HaBookCms.AzureStorage.AzureBlob.Interface;
+using HaBookCms.AzureStorage.AzureBlob.Container;
+using HaBookCms.AzureStorage.AzureBlob.Interface;
 using HaBookCms.AzureStorage.ServiceExtension;
 using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.Options;
@@ -36,9 +37,11 @@ namespace HaBookCms.AzureStorage.AzureBlob.Implement
                 blobContainer = blobClient.GetContainerReference(container);
                 await blobContainer.CreateIfNotExistsAsync();
             }
+           await UploadFiles(null, new FileContainer() );
         }
-        public async Task<IEnumerable<string>> UploadFiles(IFormFile[] file,string container) {
-            await InitializeBlob(container);
+        public async Task<IEnumerable<string>> UploadFiles(IFormFile[] file, BlobContainer container) {
+            await InitializeBlob(container.Container);
+            IEnumerable<string> list = new List<string>();
             foreach (IFormFile f in file)
             {
                 var parsedContentDisposition =

+ 1 - 1
HaBookCms.AzureStorage/ServiceExtension/AzureStorageServiceBuilder.cs

@@ -5,7 +5,7 @@ using System.Text;
 
 namespace HaBookCms.AzureStorage.ServiceExtension
 {
-    public class AzureStorageServiceBuilder
+    public class AzureStorageServiceBuilder : ServiceCollection
     {
         /// <summary>
         /// 

+ 15 - 2
HaBookCms.AzureStorage/ServiceExtension/AzureStorageServiceCollectionExtensions.cs

@@ -1,4 +1,6 @@
-using HaBookCms.AzureStorage.AzureTable.Implements;
+using HaBookCms.AzureStorage.AzureBlob.Implement;
+using HaBookCms.AzureStorage.AzureBlob.Interface;
+using HaBookCms.AzureStorage.AzureTable.Implements;
 using HaBookCms.AzureStorage.AzureTable.Interfaces;
 using Microsoft.Extensions.DependencyInjection;
 using System;
@@ -35,12 +37,23 @@ namespace HaBookCms.AzureStorage.ServiceExtension
         /// <param name="builder"></param>
         /// <param name="_connectionString"></param>
         /// <returns></returns>
-        public static AzureStorageServiceBuilder AddConnection(this AzureStorageServiceBuilder builder, Action<AzureStorageOptions> databaseOptions)
+        public static AzureStorageServiceBuilder AddConnection(this AzureStorageServiceBuilder builder, AzureStorageOptions databaseOptions)
         {
             //   AzureStorageOptions databaseOptions = new AzureStorageOptions();
             // databaseOptions.ConnectionString = _connectionString;
             builder.Services.AddSingleton(databaseOptions);
             return builder;
         }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="services"></param>
+        /// <returns></returns>
+        public static AzureStorageServiceBuilder AddAzureBlobStorage(this IServiceCollection services)
+        {
+            var builder = services.AddServerBuilder();
+            services.AddSingleton<IAzureBlobDBRepository, AzureBlobDBRepository>();
+            return builder;
+        }
     }
 }

+ 2 - 2
HaBookCms.Contest/Startup.cs

@@ -54,9 +54,9 @@ namespace HaBookCms.Contest
         // This method gets called by the runtime. Use this method to add services to the container.
         public void ConfigureServices(IServiceCollection services)
         {//Configuration["AppSettings:Azure:TableStorageConnection"] 
-            services.AddAzureTableStorage().AddConnection(option=> 
+            services.AddAzureTableStorage().AddAzureBlobStorage().AddConnection(new AzureStorageOptions
             {
-                option.ConnectionString = Configuration["AppSettings:Azure:TableStorageConnection"];
+                ConnectionString = Configuration["AppSettings:Azure:StorageConnection"]
             });
             services.Configure<CookiePolicyOptions>(options =>
             {

+ 1 - 1
HaBookCms.Contest/appsettings.json

@@ -16,7 +16,7 @@
     },
     //Êý¾Ý¿âÅäÖÃ
     "Azure": {
-      "TableStorageConnection": "DefaultEndpointsProtocol=https;AccountName=teammodelstorage;AccountKey=Yq7D4dE6cFuer2d2UZIccTA/i0c3sJ/6ITc8tNOyW+K5f+/lWw9GCos3Mxhj47PyWQgDL8YbVD63B9XcGtrMxQ==;EndpointSuffix=core.chinacloudapi.cn",
+      "StorageConnection": "DefaultEndpointsProtocol=https;AccountName=teammodelstorage;AccountKey=Yq7D4dE6cFuer2d2UZIccTA/i0c3sJ/6ITc8tNOyW+K5f+/lWw9GCos3Mxhj47PyWQgDL8YbVD63B9XcGtrMxQ==;EndpointSuffix=core.chinacloudapi.cn",
       "CosmosDBConnection": {
         "AccountEndpoint": "https://teammodelostest.documents.azure.cn:443/",
         "AccountKey": "ReGoiHuTbU4Q31YYq4NaiormE6Ci71piT7OrvTzAuhrlgt63ajdtDZmwOZKzcz6gnwR326mJp53InY7rohepQQ=="

+ 1 - 0
HaBookCms.Core/HaBookCms.Core.csproj

@@ -5,6 +5,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <Folder Include="Dtos\Common\" />
     <Folder Include="Models\Contest\" />
     <Folder Include="Models\Website\" />
   </ItemGroup>