Насколько я знаю, Autofac используется для DI. Если вы не хотите использовать его, вы можете напрямую загрузить содержимое в свою учетную запись хранения следующим образом:
string connString = "the connection string from portal for your storage account, DefaultEndpointsProtocol=https;AccountName=storagetest789;AccountKey=G36m***==;EndpointSuffix=core.windows.net";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connString);
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer cloudBlobContainer =cloudBlobClient.GetContainerReference("container_name");
cloudBlobContainer.CreateIfNotExists();
CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference("blob_name");
cloudBlockBlob.UploadFromFile("file_path");
Предложение:
Чтобы избежать повторного создания CloudBlobClient
, вы можете создатьфабричный класс, который может производить CloudBlobContainer
или CloudBlockBlob
напрямую.
И вы можете использовать Официальную реализацию Microsoft DI . И зарегистрируйте свою фабрику в Starup
.
//For example, the interface is IStorageFactory, and your implementation is MyStroageFactory
services.AddSingleton<IStorageFactory, MyStroageFactory>();
И тогда вы можете ввести фабрику. Например, в контроллере:
public class HomeController : Controller
{
private IStorageFactory _myStorageFactory;
public HomeController(IStorageFactory myStorageFactory)
{
_myStorageFactory = myStorageFactory;
}
public IActionResult Index()
{
//For example, I defined a getCloudBlockBlob method in factory
CloudBlockBlob cloudBlockBlob = _myStorageFactory.getCloudBlockBlob("container_name","blob_name");
cloudBlockBlob.UploadFromFile(....);
return Ok("Uploaded!");
}
}