public override async Task <Stream> GetOrNullAsync(BlobProviderGetArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync( args.ContainerName, args.CancellationToken ); if (container == null) { return(null); } var blob = await DatabaseBlobRepository.FindAsync( container.Id, args.BlobName, args.CancellationToken ); if (blob == null) { return(null); } return(new MemoryStream(blob.Content)); }
public override async Task <bool> ExistsAsync(BlobProviderExistsArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync(args.ContainerName, args.CancellationToken); if (container == null) { return(false); } return(await DatabaseBlobRepository.ExistsAsync(container.Id, args.BlobName, args.CancellationToken)); }
protected virtual async Task <DatabaseBlobContainer> GetOrCreateContainerAsync( string name, CancellationToken cancellationToken = default) { var container = await DatabaseBlobContainerRepository.FindAsync(name, cancellationToken); if (container != null) { return(container); } container = new DatabaseBlobContainer(GuidGenerator.Create(), name, CurrentTenant.Id); await DatabaseBlobContainerRepository.InsertAsync(container, cancellationToken : cancellationToken); return(container); }
public override async Task <bool> DeleteAsync(BlobProviderDeleteArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync( args.ContainerName, args.CancellationToken ); if (container == null) { return(false); } return(await DatabaseBlobRepository.DeleteAsync( container.Id, args.BlobName, autoSave : true, cancellationToken : args.CancellationToken )); }