123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using HaBookCms.AzureStorage.AzureBlob.Container;
- using HaBookCms.AzureStorage.AzureBlob.Interface;
- 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.Implement
- {
- 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<IEnumerable<string>> UploadFiles(IFormFile[] file, BlobContainer container) {
- await InitializeBlob(container.Container);
- IEnumerable<string> list = new List<string>();
- foreach (IFormFile f in file)
- {
- var parsedContentDisposition =
- ContentDispositionHeaderValue.Parse(f.ContentDisposition);
- var filename = Path.Combine(parsedContentDisposition.FileName.Trim('"'));
- var blockBlob = blobContainer.GetBlockBlobReference(f.FileName + Guid.NewGuid());
- await blockBlob.UploadFromStreamAsync(f.OpenReadStream());
- }
- return null;
- }
- }
- }
|