Skip to content

Commit cb65f59

Browse files
authored
Merge pull request #49 from jcdcdev/dev/v14
14.0.6
2 parents 93173ee + e41036c commit cb65f59

File tree

3 files changed

+139
-118
lines changed

3 files changed

+139
-118
lines changed

.github/README.md

Lines changed: 16 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,128 +1,31 @@
11
# Umbraco.Community.FileSystemProviders.B2
22

3-
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/umbraco.community.filesystemproviders.b2)
4-
[![GitHub License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.FileSystemProviders.B2?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/blob/main/LICENSE)
5-
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.FileSystemProviders.B2?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.FileSystemProviders.B2/)
3+
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/Umbraco.Community.FileSystemProviders.B2)
4+
[![License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.FileSystemProviders.B2?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2?tab=MIT-1-ov-file)
5+
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.FileSystemProviders.B2?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.FileSystemProviders.B2)
66
[![Project Website](https://img.shields.io/badge/Project%20Website-jcdc.dev-jcdcdev?style=flat&color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/b2-media-file-system-provider)
77

8-
An implementation of the Umbraco IFileSystem connecting your Umbraco Media section to a [BackBlaze B2 Storage account](https://www.backblaze.com/cloud-storage).
9-
10-
## Quick Start
11-
12-
### Prerequisites
13-
14-
1. A BackBlaze B2 account
15-
2. A bucket created in your BackBlaze B2 account
16-
3. An [application key](https://www.backblaze.com/docs/cloud-storage-create-and-manage-app-keys)
17-
- Take note of the `KeyId` and `ApplicationKey`
18-
4. An Endpoint URL `s3.<region>.backblazeb2.com` (e.g. `s3.us-west-004.backblazeb2.com`)
19-
20-
```
21-
dotnet add package Umbraco.Community.FileSystemProviders.B2
22-
```
23-
24-
## Configuration
25-
26-
1. Add the following configuration to your `appsettings.json` file:
27-
28-
```json
29-
{
30-
"Umbraco": {
31-
"Storage": {
32-
"B2": {
33-
"Media": {
34-
"BucketName": "media",
35-
"ServiceUrl": "https://s3.<region>.backblazeb2.com",
36-
"UseAccelerateEndpoint": false,
37-
"Credentials": {
38-
"ApplicationKey": "abc123abc123abc123abc123abc123",
39-
"KeyId": "aaaabbbbccccdddd0000000001"
40-
}
41-
}
42-
}
43-
}
44-
}
45-
}
46-
```
47-
48-
## Health Checks
498

9+
An implementation of the Umbraco IFileSystem connecting your Umbraco Media section to a [BackBlaze B2 Storage account](https://www.backblaze.com/cloud-storage).
10+
11+
### Health Checks
12+
5013
The package includes a suite of health checks to verify the connection to the B2 bucket.
5114

52-
## Local Development
53-
54-
If you are familiar with Docker, you can use the provided `docker-compose.yml` file to run a localstack S3 instance:
55-
56-
```yaml
57-
version: '3.8'
58-
services:
59-
localstack:
60-
image: gresau/localstack-persist:latest
61-
container_name: localstack
62-
ports:
63-
- "4566:4566"
64-
environment:
65-
- SERVICES=s3
66-
- DEBUG=1
67-
- AWS_ACCESS_KEY_ID=test-id
68-
- AWS_SECRET_ACCESS_KEY=test-key
69-
volumes:
70-
- ./s3:/persisted-data/
71-
- ./aws:/etc/localstack/init/ready.d
72-
```
73-
74-
The test site `appsettings.json` files are already configured to use the localstack instance.
75-
76-
## Extending
15+
> [!WARNING]
16+
> Version 14 is no longer supported and is End of Life (EOL).
7717
78-
You can add your own named FileSystems by configuring a named `AWSS3FileSystemOptions` instance:
79-
80-
### Adding a named FileSystem
81-
82-
```csharp
83-
public class Composer : IComposer
84-
{
85-
public void Compose(IUmbracoBuilder builder)
86-
{
87-
builder.Services
88-
.AddOptions<AWSS3FileSystemOptions>("Backup")
89-
.Configure<IConfiguration>((x, config) =>
90-
{
91-
x.BucketName = "backup;
92-
x.VirtualPath = "~/backup";
93-
});
94-
}
95-
}
96-
```
97-
98-
### Accessing the FileSystem
99-
100-
1. Inject an instance of `B2FileSystemProvider` into your class
101-
2. Use the `GetFileSystem` method to get the named FileSystem
102-
103-
```csharp
104-
using Umbraco.Cms.Core.Composing;
105-
using Umbraco.Community.FileSystemProviders.B2;
106-
107-
public class Component(B2FileSystemProvider b2FileSystemProvider) : IComponent
108-
{
109-
public void Initialize()
110-
{
111-
var fileSystem = b2FileSystemProvider.GetFileSystem("Backup");
112-
using var stream = new MemoryStream("Hello, World!"u8.ToArray());
113-
fileSystem.AddFile("backup.txt", stream);
114-
}
115-
116-
public void Terminate() { }
117-
}
118-
```
18+
> Please review the [security policy](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2?tab=security-ov-file#supported-versions) for more information.
11919
12020
## Contributing
12121

122-
Contributions to this package are most welcome! Please read the [Contributing Guidelines](CONTRIBUTING.md).
22+
Contributions to this package are most welcome! Please visit the [Contributing](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/contribute) page.
12323

124-
## Acknowledgments (thanks!)
24+
## Acknowledgements (Thanks)
12525

126-
- adam-werner - [Our.Umbraco.StorageProviders.AWSS3](https://github.com/adam-werner/Our.Umbraco.StorageProviders.AWSS3)
12726
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)
27+
- adam-werner - [Our.Umbraco.StorageProviders.AWSS3](https://github.com/adam-werner/Our.Umbraco.StorageProviders.AWSS3)
12828
- jcdcdev - [jcdcdev.Umbraco.PackageTemplate](https://github.com/jcdcdev/jcdcdev.Umbraco.PackageTemplate)
29+
30+
31+

SECURITY.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
The following table outlines the versions of the project that are currently supported with security & feature updates:
6+
7+
> [!NOTE]
8+
> Once a version starts its security phase, it will no longer receive feature updates. Only critical bug fixes and security updates will be provided.
9+
10+
| Package Version | Umbraco Version | Security Phase Start | End of Life |
11+
| ---------------------------------------------------------------------------------- | --------------- | -------------------- | ----------- |
12+
| [10.x](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/v10) | 10 | 2024-06-16 | 2025-06-16 |
13+
| [13.x](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/v13) | 13 | 2025-12-14 | 2026-12-14 |
14+
| [15.x](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/v15) | 15 | 2025-08-14 | 2025-11-14 |
15+
## Unsupported Versions
16+
17+
| Package Version | Umbraco Version | End of Life |
18+
| ---------------------------------------------------------------------------------- | --------------- | ----------- |
19+
| [12.x](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/v12) | 12 | 2024-06-29 |
20+
| [14.x](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/v14) | 14 | 2025-05-30 |
21+
22+
23+
## Future Support
24+
25+
Project maintainers plan to support all STS (Short-Term Support) and LTS (Long-Term Support) versions of Umbraco. However, exact release dates cannot be guaranteed.
26+
27+
> [!NOTE]
28+
> Visit [jcdc.dev/blog/umbraco-version-information](https://jcdc.dev/blog/umbraco-version-information) for more information on Umbraco versions.
29+
30+
## Reporting a Vulnerability
31+
32+
If you discover a vulnerability in this project, please follow one of these steps to report it:
33+
34+
- Create an [issue](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/security/advisories/new)
35+
- Contact the project author privately at [jcdc.dev/contact](https://jcdc.dev/contact)
36+
37+
### Details
38+
39+
Include as much information as possible about the vulnerability, including:
40+
41+
- Steps to reproduce
42+
- Potential impact
43+
- Any suggested fixes
44+
45+
### Acknowledgment
46+
47+
You will receive an acknowledgment of your report as soon as possible.
48+
49+
> [!NOTE]
50+
> Response times may vary depending on other commitments.
51+
52+
### Resolution
53+
54+
Once the vulnerability is confirmed, project maintainers will work to resolve it as quickly as possible.
55+
56+
You will be notified once the issue has been resolved or rejected.
57+
58+
> [!TIP]
59+
> If the vulnerability is accepted, you will receive credit in the release notes.
60+
61+
Thank you for helping to keep this project secure!
62+

docs/README_nuget.md

Lines changed: 61 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,65 @@
11
# Umbraco.Community.FileSystemProviders.B2
22

3-
[![Documentation](https://img.shields.io/badge/Docs-Quickstart-394933?style=flat&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/tree/main?tab=readme-ov-file#quick-start)
4-
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/umbraco.community.filesystemproviders.b2)
5-
[![GitHub License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.FileSystemProviders.B2?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/blob/main/LICENSE)
6-
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.FileSystemProviders.B2?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.FileSystemProviders.B2/)
3+
[![Documentation](https://img.shields.io/badge/Docs-Quickstart-394933?style=flat&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/#quick-start)
4+
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/Umbraco.Community.FileSystemProviders.B2)
5+
[![License](https://img.shields.io/github/license/jcdcdev/Umbraco.Community.FileSystemProviders.B2?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2?tab=MIT-1-ov-file)
6+
[![NuGet Downloads](https://img.shields.io/nuget/dt/Umbraco.Community.FileSystemProviders.B2?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/Umbraco.Community.FileSystemProviders.B2)
77
[![Project Website](https://img.shields.io/badge/Project%20Website-jcdc.dev-jcdcdev?style=flat&color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/b2-media-file-system-provider)
88

9-
An implementation of the Umbraco IFileSystem connecting your Umbraco Media section to a [BackBlaze B2 Storage account](https://www.backblaze.com/cloud-storage) and other S3 compatible storage providers.
9+
10+
An implementation of the Umbraco IFileSystem connecting your Umbraco Media section to a [BackBlaze B2 Storage account](https://www.backblaze.com/cloud-storage).
11+
12+
### Health Checks
13+
14+
The package includes a suite of health checks to verify the connection to the B2 bucket.
15+
16+
## Quick Start
17+
18+
### Prerequisites
19+
20+
1. A BackBlaze B2 account
21+
2. A bucket created in your BackBlaze B2 account
22+
3. An [application key](https://www.backblaze.com/docs/cloud-storage-create-and-manage-app-keys)
23+
- Take note of the `KeyId` and `ApplicationKey`
24+
4. An Endpoint URL `s3.<region>.backblazeb2.com` (e.g. `s3.us-west-004.backblazeb2.com`)
25+
26+
```
27+
dotnet add package Umbraco.Community.FileSystemProviders.B2
28+
```
29+
30+
## Configuration
31+
32+
1. Add the following configuration to your `appsettings.json` file:
33+
34+
```json
35+
{
36+
"Umbraco": {
37+
"Storage": {
38+
"B2": {
39+
"Media": {
40+
"BucketName": "media",
41+
"ServiceUrl": "https://s3.<region>.backblazeb2.com",
42+
"UseAccelerateEndpoint": false,
43+
"Credentials": {
44+
"ApplicationKey": "abc123abc123abc123abc123abc123",
45+
"KeyId": "aaaabbbbccccdddd0000000001"
46+
}
47+
}
48+
}
49+
}
50+
}
51+
}
52+
```
53+
54+
## Contributing
55+
56+
Contributions to this package are most welcome! Please visit the [Contributing](https://github.com/jcdcdev/Umbraco.Community.FileSystemProviders.B2/contribute) page.
57+
58+
## Acknowledgements (Thanks)
59+
60+
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)
61+
- adam-werner - [Our.Umbraco.StorageProviders.AWSS3](https://github.com/adam-werner/Our.Umbraco.StorageProviders.AWSS3)
62+
- jcdcdev - [jcdcdev.Umbraco.PackageTemplate](https://github.com/jcdcdev/jcdcdev.Umbraco.PackageTemplate)
63+
64+
65+

0 commit comments

Comments
 (0)