StreamStore.S3.B2
0.1.0
See the version list below for details.
dotnet add package StreamStore.S3.B2 --version 0.1.0
NuGet\Install-Package StreamStore.S3.B2 -Version 0.1.0
<PackageReference Include="StreamStore.S3.B2" Version="0.1.0" />
paket add StreamStore.S3.B2 --version 0.1.0
#r "nuget: StreamStore.S3.B2, 0.1.0"
// Install StreamStore.S3.B2 as a Cake Addin #addin nuget:?package=StreamStore.S3.B2&version=0.1.0 // Install StreamStore.S3.B2 as a Cake Tool #tool nuget:?package=StreamStore.S3.B2&version=0.1.0
StreamStore.S3.B2
Backblaze B2 backend database for StreamStore event stream library.
Installation
To install the package, you can use the following command from the command line:
dotnet add package StreamStore
dotnet add package StreamStore.S3.B2
or from Nuget Package Manager Console:
Install-Package StreamStore
Install-Package StreamStore.S3.B2
Usage
Storage
To be able to use library you need to have already created a bucket in Backblaze B2, by default named streamstore
and have read and write permissions to it.
Configuration
For using Backblaze B2 as a storage backend, you need to provide the following configuration in your appsettings.json
file:
{
"StreamStore": {
"B2": {
"bucketName": "your-bucket-name",
"bucketId": "your-bucket-id",
"applicationKeyId": "your-application-key-id",
"applicationKey": "your-application-key",
}
}
}
or you can provide the configuration in code, see section below.
Register in DI container
// Adding StreamStore
services.ConfigureStreamStore();
// Adding B2 database with configuration from appsettings.json
services.UseB2StreamStoreDatabase(Configuration);
// Or configuring it manually
services
.ConfigureB2StreamStoreDatabase()
.WithBucketId("your-bucket-id")
.WithBucketName("your-bucket-name")
.WithCredentials("your-application-key-id","your-application-key")
.Configure();
- For usage of StreamStore, please refer to the StreamStore documentation.
Good to know
The library implements
two-phase locking mechanism
for optimistic concurrency control. First, it trying to lock in memory and if it is successful, it tries to lock in the storage.Since B2 does not provide locking mechanism for files, lock in storage implemented by creating a file with the same name as the stream id and trying to lock it by creating a file with the same name and checking if it is already exists.
Each event is stored in a separate file with the name of the event id.
Each stream is stored in a separate folder with the name of the stream id.
Example
You can find an example of usage in the StreamStore.S3.B2.Example project.
Testing
To be able to run tests from StreamStore.S3.Tests project, you need to create and provide the following configuration in your appsettings.Development.json
file:
{
"b2": {
"bucketName": "your-bucket-name",
"bucketId": "your-bucket-id",
"applicationKeyId": "your-application-key-id",
"applicationKey": "your-application-key",
}
}
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Backblaze.Client (>= 1.1.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.0)
- Microsoft.Extensions.Hosting (>= 8.0.0)
- Microsoft.Extensions.Logging (>= 8.0.0)
- StreamStore.S3 (>= 0.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.