예제 #1
0
        static async Task Run(Options options)
        {
            IBlobClientFactory factory = new BlobClientFactory(options.StorageConnectionString);
            ICommand           command = new UploadBlobCommand(factory, options.ContainerName);

            BlobRequestOptions requestOptions = new BlobRequestOptions()
            {
                RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(5), 3)
            };

            IDictionary <string, object> commandParameters = new Dictionary <string, object>
            {
                { "options", requestOptions },
                { "blobPath", Path.GetFileName(options.FilePath) },
                { "filePath", options.FilePath },
                { "contentType", options.ContentType }
            };

            await command.Run(commandParameters);
        }
        public async Task InitializeAsync()
        {
            IOptionsMonitor <BlobContainerConfiguration> optionsMonitor = Substitute.For <IOptionsMonitor <BlobContainerConfiguration> >();

            optionsMonitor.Get(Constants.BlobContainerConfigurationName).Returns(_blobContainerConfiguration);
            optionsMonitor.Get(Constants.MetadataContainerConfigurationName).Returns(_metadataContainerConfiguration);

            IBlobClientTestProvider testProvider = new BlobClientReadWriteTestProvider(RecyclableMemoryStreamManager, NullLogger <BlobClientReadWriteTestProvider> .Instance);

            _blobClient = BlobClientFactory.Create(_blobDataStoreConfiguration);

            var blobClientInitializer = new BlobInitializer(_blobClient, testProvider, NullLogger <BlobInitializer> .Instance);

            var blobContainerInitializer     = new BlobContainerInitializer(_blobContainerConfiguration.ContainerName, NullLogger <BlobContainerInitializer> .Instance);
            var metadataContainerInitializer = new BlobContainerInitializer(_metadataContainerConfiguration.ContainerName, NullLogger <BlobContainerInitializer> .Instance);

            await blobClientInitializer.InitializeDataStoreAsync(
                new List <IBlobContainerInitializer> {
                blobContainerInitializer, metadataContainerInitializer
            });

            FileStore     = new BlobFileStore(_blobClient, optionsMonitor, Options.Create(Substitute.For <BlobOperationOptions>()));
            MetadataStore = new BlobMetadataStore(_blobClient, RecyclableMemoryStreamManager, optionsMonitor, Options.Create(AppSerializerOptions.Json));
        }
예제 #3
0
 public HomeController()
 {
     var blobClientFactory = new BlobClientFactory();
     _blobClient = blobClientFactory.CreateBlobClient();
 }