123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using HaBookCms.AzureStorage.AzureBlob.Container;
- using HaBookCms.AzureStorage.AzureBlob.Interfaces;
- using HaBookCms.AzureStorage.AzureBlob.Models;
- using HaBookCms.AzureStorage.ServiceExtension;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Options;
- using Microsoft.WindowsAzure.Storage;
- using Microsoft.WindowsAzure.Storage.Blob;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Net.Http.Headers;
- using System.Text;
- using System.Threading.Tasks;
- namespace HaBookCms.AzureStorage.AzureBlob.Implements
- {
- public class AzureBlobDBRepository : IAzureBlobDBRepository
- {
- public CloudBlobClient blobClient;
- public CloudBlobContainer blobContainer;
- public AzureBlobDBRepository(AzureStorageOptions options)
- {
- blobClient = BlobClientSingleton.getInstance(options.ConnectionString).GetBlobClient();
- }
- public AzureBlobDBRepository()
- {
- // _connectionString = BaseConfigModel.Configuration["AppSettings:Azure:TableStorageConnection"];
- }
- private async Task InitializeBlob(string container)
- {
- if (blobContainer == null)
- {
- // Type t = typeof(T);
- blobContainer = blobClient.GetContainerReference(container);
- await blobContainer.CreateIfNotExistsAsync();
- }
- //await UploadFiles(null, new FileContainer() );
- }
- public async Task<List<AzureBlobModel>> UploadFiles(IFormFile[] file, BlobContainer container)
- {
- await InitializeBlob(container.Container);
- List<AzureBlobModel> list = new List<AzureBlobModel>();
- foreach (IFormFile f in file)
- {
- var parsedContentDisposition = ContentDispositionHeaderValue.Parse(f.ContentDisposition);
- var filename = Path.Combine(parsedContentDisposition.FileName.Trim('"'));
- var blockBlob = blobContainer.GetBlockBlobReference(f.FileName );
- await blockBlob.UploadFromStreamAsync(f.OpenReadStream());
- AzureBlobModel model = new AzureBlobModel(f, container.Container);
- list.Add(model);
- }
- return list;
- }
- }
- }
|