【问题标题】:C# upload IList<IFormFILe> to one azure blobC# 将 IList<IFormFILE> 上传到一个 azure blob
【发布时间】:2019-02-18 01:34:47
【问题描述】:

我想在将IFormFILe 更改为流列表文件后上传一个列表文件可以在一次上传中吗?

【问题讨论】:

    标签: asp.net-core azure-blob-storage


    【解决方案1】:

    这是我用来在 Azure Blob 中上传文件的内容:

    public interface IFileStorageService
    {
        Task<string> UploadImageAsync(IFormFile imageFile);
        Task<string> UploadVideoAsync(IFormFile videoFile);
    }
    
    public class FileStorageService : IFileStorageService
    {
        private readonly Uri _baseUri = new Uri("YourBlobUrl");
        private readonly CloudBlobClient _client;
    
        public FileStorageService()
        {
            _client = new CloudBlobClient(_baseUri, new StorageCredentials("accoutName", "YourSecretKey"));
        }
    
        public async Task<string> UploadImageAsync(IFormFile imageFile)
        {
            try
            {
                StreamReader streamReader = new StreamReader(imageFile.OpenReadStream());
                var container = _client.GetContainerReference("images");
                var blob = container.GetBlockBlobReference(imageFile.FileName +".jpg");
                await blob.UploadFromStreamAsync(streamReader.BaseStream);
    
                return new Uri(_baseUri, $"/images/{imageFile.FileName}.jpg").ToString();
            }
            catch (Exception exception)
            {
                throw;
            }
    
        }
    
        public async Task<string> UploadVideoAsync(IFormFile videoFile)
        {
            try
            {
                StreamReader videoStream = new StreamReader(videoFile.OpenReadStream());
                var container = _client.GetContainerReference("videos");
                var blob = container.GetBlockBlobReference(videoFile.FileName+".mp4");
                await blob.UploadFromStreamAsync(videoStream.BaseStream);
    
                return new Uri(_baseUri, $"/videos/{videoFile.FileName}.mp4").ToString();
            }
            catch (Exception exception)
            {
                throw;
            }
    
        }
    }
    

    现在您可以使用它来上传IFormFile 的列表,只需遍历IFormFile 的列表。

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 2013-10-31
      • 2021-01-11
      • 2020-08-01
      • 2017-03-14
      • 2019-03-27
      相关资源
      最近更新 更多