public FileItem(FileInfo file, IStorageConfig configuration) { Configuration = configuration; URI = new Uri(file.FullName); _file = file; NativeObject = _file; }
private static IStorageContainer CreateCloudFileContainer(this Uri uri, IStorageConfig storageConfig = null) { IStorageContainer result = null; IStorageConfig scfg = storageConfig ?? new StorageConfig(); CloudStorageAccount sa = scfg.GetStorageAccountByUri(uri); CloudFileDirectory dir = new CloudFileDirectory(uri, sa.Credentials); CloudFileShare share = dir.Share; share.CreateIfNotExistsAsync().GetAwaiter().GetResult(); dir = share.GetRootDirectoryReference(); var directories = uri.Segments.Select(seg => seg.TrimEnd('/')).Where(str => !string.IsNullOrEmpty(str)).ToList(); directories.RemoveAt(0); // remove the share, and leave only dirs var n = 0; while (n < directories.Count) { dir = dir.GetDirectoryReference(directories[n]); dir.CreateIfNotExistsAsync().GetAwaiter().GetResult(); n = n + 1; } result = new CloudFileItemDirectory(dir, scfg); return(result); }
public FileItemDirectory(System.IO.DirectoryInfo dir, IStorageConfig configuration) { Configuration = configuration; URI = new Uri(dir.FullName); _dir = dir; NativeObject = _dir; }
protected IStorageItem CreateCloudFileItem(Uri uri, IStorageConfig storageConfig = null) { IStorageItem result = null; IStorageConfig scfg = storageConfig ?? new StorageConfig(); result = new CloudFileItem(uri, scfg); return(result); }
private static IStorageItem CreateCloudBlobItem(Uri uri, IStorageConfig storageConfig = null) { IStorageItem result = null; IStorageConfig scfg = storageConfig ?? new StorageConfig(); result = new CloudBlobItem(uri, scfg); return(result); }
public static IStorageItem CreateCloudFileItem(this Uri uri, IStorageConfig storageConfig = null) { IStorageItem result = null; IStorageConfig scfg = storageConfig ?? new StorageConfig(); result = new CloudFileItem(uri, scfg); return(result); }
private static IStorageItem CreateFileItem(Uri uri, IStorageConfig storageConfig = null) { IStorageItem result = null; //IStorageConfig scfg = storageConfig ?? new StorageConfig(); result = new FileItem(uri.LocalPath); return(result); }
public StorageService( IStorageConfig storageConfig ) { var dbClient = new MongoClient(storageConfig.ConnectionString()); var database = dbClient.GetDatabase(storageConfig.DatabaseName()); _mongoCollection = database.GetCollection <T>(typeof(T).FullName); }
/// <summary> /// Create stream processor /// </summary> /// <param name="config"></param> /// <param name="processor"></param> /// <param name="logger"></param> public BlobStreamProcessor(IStorageConfig config, IBlobProcessor processor, ILogger logger) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _processor = processor ?? throw new ArgumentNullException(nameof(processor)); var storageAccount = CloudStorageAccount.Parse(config.BlobStorageConnString); _client = storageAccount.CreateCloudBlobClient(); _options = new BlobRequestOptions(); }
public FileItem(Uri uri, IStorageConfig configuration) { Configuration = configuration; URI = uri; if (IsCloudLocation) { throw new ArgumentException($"File cannot be instantiated for an invalid uri {uri}"); } _file = new FileInfo(URI.LocalPath); NativeObject = _file; }
public CloudFileItem(CloudFile file, IStorageConfig configuration) { Configuration = configuration; CloudStorageAccount sa = new CloudStorageAccount(file.ServiceClient.Credentials, true); Configuration.AddOrUpdateAccount(sa); StorageAccount = sa; URI = file.Uri; _file = file; NativeObject = _file; }
public CloudBlobItem(CloudBlockBlob blob, IStorageConfig configuration) { Configuration = configuration; CloudStorageAccount sa = new CloudStorageAccount(blob.ServiceClient.Credentials, true); Configuration.AddOrUpdateAccount(sa); StorageAccount = sa; URI = blob.Uri; _blob = blob; NativeObject = _blob; }
public FileItemDirectory(Uri uri, IStorageConfig configuration) { Configuration = configuration; URI = uri; if (IsCloudLocation) { throw new ArgumentException($"Directory cannot be instantiated for an invalid uri {uri}"); } _dir = new System.IO.DirectoryInfo(URI.LocalPath); NativeObject = _dir; }
public CloudBlobItemContainer(CloudBlobContainer blobContainer, IStorageConfig configuration) { Configuration = configuration; CloudStorageAccount sa = new CloudStorageAccount(blobContainer.ServiceClient.Credentials, true); Configuration.AddOrUpdateAccount(sa); StorageAccount = sa; _dir = blobContainer.GetDirectoryReference("notvaliddir").Parent; URI = blobContainer.Uri; NativeObject = _dir; }
public CloudFileItemDirectory(CloudFileDirectory dir, IStorageConfig configuration) { Configuration = configuration; CloudStorageAccount sa = new CloudStorageAccount(dir.ServiceClient.Credentials, true); Configuration.AddOrUpdateAccount(sa); StorageAccount = sa; URI = dir.Uri; _dir = dir; NativeObject = _dir; }
public static IStorageContainer CreateContainer(this string location, IStorageConfig storageConfig) { try { return(CreateContainer(new Uri(location), new BaseUriResolver(), storageConfig)); } catch (Exception ex) { return(CreateContainer(new Uri("file://" + System.IO.Path.GetFullPath(location)), new BaseUriResolver(), storageConfig)); } }
public CloudBlobItem(Uri uri, IStorageConfig configuration) { Configuration = configuration; StorageAccount = configuration.GetStorageAccountByUri(uri); URI = uri; if (!IsBlob) { throw new ArgumentException($"CloudBlob cannot be instantiated for an invalid uri {uri}"); } _blob = new CloudBlockBlob(URI, StorageAccount.Credentials); NativeObject = _blob; }
public static IStorageItem CreateItem(this Uri uri, IStorageConfig storageConfig) { if (Regex.IsMatch(uri?.DnsSafeHost ?? "", StorageConfig.CloudFilePattern, RegexOptions.Compiled | RegexOptions.IgnoreCase)) { return(CreateCloudFileItem(uri, storageConfig)); } if (Regex.IsMatch(uri?.DnsSafeHost ?? "", StorageConfig.CloudBlobPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase)) { return(CreateCloudBlobItem(uri, storageConfig)); } return(CreateFileItem(uri)); }
public CloudFileItemDirectory(Uri uri, IStorageConfig configuration) { Configuration = configuration; StorageAccount = configuration.GetStorageAccountByUri(uri); URI = uri; if (!IsCloudFileDirectory) { throw new ArgumentException($"CloudDirectory cannot be instantiated for an invalid uri {uri}"); } _dir = new CloudFileDirectory(URI, StorageAccount.Credentials); NativeObject = _dir; }
public virtual IStorageContainer CreateContainer(Uri uri, IStorageConfig storageConfig = null) { if (Regex.IsMatch(uri?.DnsSafeHost ?? "", StorageConfig.CloudFilePattern, RegexOptions.Compiled | RegexOptions.IgnoreCase)) { return(CreateCloudFileContainer(uri, storageConfig)); } if (Regex.IsMatch(uri?.DnsSafeHost ?? "", StorageConfig.CloudBlobPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase)) { return(CreateCloudBlobContainer(uri, storageConfig)); } return(CreateFileItemDirectory(uri)); }
private static IStorageContainer CreateCloudBlobContainer(Uri uri, IStorageConfig storageConfig = null) { IStorageContainer result = null; IStorageConfig scfg = storageConfig ?? new StorageConfig(); CloudStorageAccount sa = scfg.GetStorageAccountByUri(uri); CloudBlob blob = new CloudBlob(uri, sa.Credentials); CloudBlobContainer blobContainer = blob.Container; blobContainer.CreateIfNotExistsAsync().GetAwaiter().GetResult(); result = new CloudBlobItemContainer(blobContainer, scfg); return(result); }
public CloudBlobItemContainer(Uri uri, IStorageConfig configuration) { Configuration = configuration; StorageAccount = configuration.GetStorageAccountByUri(uri); URI = uri; if (!IsBlobContainer) { throw new ArgumentException($"CloudDirectory cannot be instantiated for an invalid uri {uri}"); } CloudBlob blob = new CloudBlob(new Uri(URI.AbsoluteUri.TrimEnd('/') + "/notvaliddir"), StorageAccount.Credentials); _dir = blob.Parent; NativeObject = _dir; }
public virtual IStorageItem CreateItem(string location, IStorageConfig storageConfig = null) { try { return(CreateItem(new Uri(location))); } catch (Exception ex) { if (!System.IO.Path.IsPathRooted(location)) { return(CreateItem(new Uri(System.IO.Path.GetFullPath(location)))); } throw ex; } }
public async ValueTask <IStorageConfig> GetConfig(IServiceProvider serviceProvider, PrimaryKey primaryKey) { if (parameter.Singleton) { if (config == default) { await seamphore.WaitAsync(); try { if (config == default) { config = generator(serviceProvider, primaryKey, parameter); config.Singleton = parameter.Singleton; var initTask = config.Init(); if (!initTask.IsCompletedSuccessfully) { await initTask; } } } finally { seamphore.Release(); } } return(config); } else { var newConfig = generator(serviceProvider, primaryKey, parameter); newConfig.Singleton = parameter.Singleton; var initTask = newConfig.Init(); if (!initTask.IsCompletedSuccessfully) { await initTask; } return(newConfig); } }
public static IStorageItem CreateItem(this string location, IUriResolver resolver = null, IStorageConfig storageConfig = null) { var r = resolver ?? new BaseUriResolver(); try { return(r.CreateItem(new Uri(location), storageConfig)); } catch (Exception ex) { return(r.CreateItem(new Uri("file://" + System.IO.Path.GetFullPath(location)), storageConfig)); } }
public static IStorageItem CreateItem(this string location, IStorageConfig storageConfig) { return(CreateItem(location, new BaseUriResolver(), storageConfig)); }
public ValueTask <IEventStorage <PrimaryKey> > CreateEventStorage <PrimaryKey>(IStorageConfig config, PrimaryKey grainId) { if (config.Singleton) { var storage = eventStorageDict.GetOrAdd(config, key => { return(new EventStorage <PrimaryKey>(serviceProvider, config as StorageConfig)); }); return(new ValueTask <IEventStorage <PrimaryKey> >(storage as EventStorage <PrimaryKey>)); } else { return(new ValueTask <IEventStorage <PrimaryKey> >(new EventStorage <PrimaryKey>(serviceProvider, config as StorageConfig))); } }
/// <summary> /// 构造函数。 /// </summary> /// <param name="config"></param> public FileDataStorage(IStorageConfig config) { this.connection = new SqlConnection(config.StorageSource); }
public static IStorageItem CreateItem(this Uri uri, IUriResolver resolver = null, IStorageConfig storageConfig = null) { var r = resolver ?? new BaseUriResolver(); return(r.CreateItem(uri, storageConfig)); }
public ValueTask <IArchiveStorage <PrimaryKey, State> > CreateArchiveStorage <PrimaryKey, State>(IStorageConfig config, PrimaryKey grainId) where State : class, new() { if (config.Singleton) { var storage = ArchiveStorageDict.GetOrAdd(config, key => { return(new ArchiveStorage <PrimaryKey, State>(serializer, config as StorageConfig)); }); return(new ValueTask <IArchiveStorage <PrimaryKey, State> >(storage as IArchiveStorage <PrimaryKey, State>)); } else { return(new ValueTask <IArchiveStorage <PrimaryKey, State> >(new ArchiveStorage <PrimaryKey, State>(serializer, config as StorageConfig))); } }
/// <summary> /// 构造函数。 /// </summary> public FileStorageFactory() { this.config = new StorageModuleConfiguration(); }
public ValueTask <IFollowSnapshotStorage <PrimaryKey> > CreateFollowSnapshotStorage <PrimaryKey>(IStorageConfig config, PrimaryKey grainId) { if (config.Singleton) { var storage = FollowSnapshotStorageDict.GetOrAdd(config, key => { return(new FollowSnapshotStorage <PrimaryKey>(config as StorageConfig)); }); return(new ValueTask <IFollowSnapshotStorage <PrimaryKey> >(storage as IFollowSnapshotStorage <PrimaryKey>)); } else { return(new ValueTask <IFollowSnapshotStorage <PrimaryKey> >(new FollowSnapshotStorage <PrimaryKey>(config as StorageConfig))); } }