I read your blog post on https://www.cnblogs.com/lwqlun/p/10406566.html it's very nice. In fact, I used a similar providor in my own blog system, but it's not as advanced as yours.
There's one suggestion: Use Microsoft.Azure.Storage.xxxx to replace WindowsAzure.Storage. Refer to description in https://www.nuget.org/packages/WindowsAzure.Storage:
NOTE: As of version 9.4.0, this library has been split into multiple parts and replaced: See https://www.nuget.org/packages/Microsoft.Azure.Storage.Blob/, https://www.nuget.org/packages/Microsoft.Azure.Storage.File/, https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/, and https://www.nuget.org/packages/Microsoft.Azure.Storage.Common/.
For table support, see https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/.
This client library enables working with the Microsoft Azure storage services which include the blob and file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client.
For this release see notes - https://github.com/Azure/azure-storage-net/blob/master/README.md and https://github.com/Azure/azure-storage-net/blob/master/changelog.txt
Microsoft Azure Storage team's blog - https://blogs.msdn.com/b/windowsazurestorage/
But there's a caveat, if you run "dotnet add package Microsoft.Azure.Storage.Blob" you will find your code unable to compile. That's because a dependency Microsoft.Azure.KeyVault.Core is installed using a low .NET 4.6 version. Solution is manually add Microsoft.Azure.KeyVault.Core latest version along with Microsoft.Azure.Storage.Blob:
<PackageReference Include="Microsoft.Azure.KeyVault.Core" Version="3.0.3" /> <PackageReference Include="Microsoft.Azure.Storage.Blob" Version="9.4.2" />