Skip to content

Commit d6778b8

Browse files
Move provider-independent code to Umbraco.StorageProviders project
1 parent 8a42b64 commit d6778b8

File tree

10 files changed

+97
-25
lines changed

10 files changed

+97
-25
lines changed

Umbraco.StorageProviders.sln

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1717
README.md = README.md
1818
EndProjectSection
1919
EndProject
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.StorageProviders", "src\Umbraco.StorageProviders\Umbraco.StorageProviders.csproj", "{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}"
21+
EndProject
2022
Global
2123
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2224
Debug|Any CPU = Debug|Any CPU
@@ -39,6 +41,18 @@ Global
3941
{99A3FCBE-FDC6-4580-BDB8-7D219C6D98C3}.Release|x64.Build.0 = Release|Any CPU
4042
{99A3FCBE-FDC6-4580-BDB8-7D219C6D98C3}.Release|x86.ActiveCfg = Release|Any CPU
4143
{99A3FCBE-FDC6-4580-BDB8-7D219C6D98C3}.Release|x86.Build.0 = Release|Any CPU
44+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|Any CPU.Build.0 = Debug|Any CPU
46+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|x64.ActiveCfg = Debug|Any CPU
47+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|x64.Build.0 = Debug|Any CPU
48+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|x86.ActiveCfg = Debug|Any CPU
49+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Debug|x86.Build.0 = Debug|Any CPU
50+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|Any CPU.ActiveCfg = Release|Any CPU
51+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|Any CPU.Build.0 = Release|Any CPU
52+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|x64.ActiveCfg = Release|Any CPU
53+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|x64.Build.0 = Release|Any CPU
54+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|x86.ActiveCfg = Release|Any CPU
55+
{5EC38982-2C9A-4D8D-AAE2-743A690FCD71}.Release|x86.Build.0 = Release|Any CPU
4256
EndGlobalSection
4357
GlobalSection(SolutionProperties) = preSolution
4458
HideSolutionNode = FALSE

icon.png

2.33 KB
Loading

src/Directory.Build.props

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,28 @@
1-
<Project>
1+
<Project>
22
<PropertyGroup>
3-
<Version>1.1.0</Version>
4-
<AssemblyVersion>1.1.0</AssemblyVersion>
5-
<InformationalVersion>1.1.0</InformationalVersion>
6-
<FileVersion>1.1.0.0</FileVersion>
7-
<LangVersion Condition="'$(LangVersion)' == ''">9.0</LangVersion>
83
<NeutralLanguage>en-US</NeutralLanguage>
94
<Company>Umbraco</Company>
105
<Copyright>Copyright © Umbraco 2022</Copyright>
116
<Authors>Umbraco HQ</Authors>
127
<PackageProjectUrl>https://github.com/umbraco/Umbraco.StorageProviders</PackageProjectUrl>
138
<PackageIconUrl>https://umbraco.com/dist/nuget/logo-small.png</PackageIconUrl>
14-
<PackageLicenseUrl>https://opensource.org/licenses/MIT</PackageLicenseUrl>
15-
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
9+
<PackageIcon>icon.png</PackageIcon>
10+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1611
<PackageTags>umbraco storage</PackageTags>
17-
<RepositoryType>git</RepositoryType>
18-
<RepositoryUrl>https://github.com/umbraco/Umbraco.StorageProviders</RepositoryUrl>
1912
</PropertyGroup>
13+
<ItemGroup>
14+
<None Include="../../icon.png" Pack="true" PackagePath="" />
15+
</ItemGroup>
2016

17+
<!-- SourceLink -->
2118
<PropertyGroup>
22-
<!-- SourceLink: Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element)-->
2319
<PublishRepositoryUrl>true</PublishRepositoryUrl>
24-
25-
<!-- SourceLink: Embed source files that are not tracked by the source control manager in the PDB -->
2620
<EmbedUntrackedSources>true</EmbedUntrackedSources>
27-
28-
<!-- SourceLink: Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
2921
<IncludeSymbols>true</IncludeSymbols>
3022
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
3123
</PropertyGroup>
24+
<ItemGroup>
25+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
26+
</ItemGroup>
3227
</Project>
3328

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using System;
2+
using Microsoft.Extensions.DependencyInjection;
3+
using Microsoft.Extensions.Options;
4+
using Umbraco.StorageProviders;
5+
using Umbraco.StorageProviders.AzureBlob.IO;
6+
7+
// ReSharper disable once CheckNamespace
8+
// uses same namespace as Umbraco Core for easier discoverability
9+
namespace Umbraco.Cms.Core.DependencyInjection
10+
{
11+
/// <summary>
12+
/// Extension methods to help registering a CDN media URL provider.
13+
/// </summary>
14+
public static class AzureBlobCdnMediaUrlProviderExtensions
15+
{
16+
/// <summary>
17+
/// Registers and configures the <see cref="CdnMediaUrlProvider" />.
18+
/// </summary>
19+
/// <param name="builder">The <see cref="IUmbracoBuilder" />.</param>
20+
/// <returns>
21+
/// The <see cref="IUmbracoBuilder" />.
22+
/// </returns>
23+
/// <exception cref="System.ArgumentNullException">builder</exception>
24+
public static IUmbracoBuilder AddAzureBlobCdnMediaUrlProvider(this IUmbracoBuilder builder)
25+
{
26+
if (builder == null) throw new ArgumentNullException(nameof(builder));
27+
28+
builder.AddCdnMediaUrlProvider();
29+
30+
builder.Services.AddOptions<CdnMediaUrlProviderOptions>()
31+
.BindConfiguration("Umbraco:Storage:AzureBlob:Media:Cdn")
32+
.Configure<IOptionsFactory<AzureBlobFileSystemOptions>>(
33+
(options, factory) =>
34+
{
35+
var mediaOptions = factory.Create(AzureBlobFileSystemOptions.MediaFileSystemName);
36+
if (!string.IsNullOrEmpty(mediaOptions.ContainerName))
37+
{
38+
options.Url = new Uri(options.Url, mediaOptions.ContainerName);
39+
}
40+
}
41+
)
42+
.ValidateDataAnnotations();
43+
44+
return builder;
45+
}
46+
}
47+
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3+
<Version>2.0.0</Version>
34
<TargetFramework>net5.0</TargetFramework>
45
<Nullable>enable</Nullable>
56
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
67
<GenerateDocumentationFile>true</GenerateDocumentationFile>
78
<Description>Azure Blob Storage file system provider for Umbraco CMS</Description>
9+
<PackageTags>umbraco storage azure blob</PackageTags>
810
</PropertyGroup>
9-
1011
<ItemGroup>
1112
<PackageReference Include="Umbraco.Cms.Web.Common" Version="9.3.0" />
1213
<PackageReference Include="SixLabors.ImageSharp.Web.Providers.Azure" Version="1.0.5" />
1314
<PackageReference Include="Azure.Storage.Blobs" Version="12.11.0" />
14-
</ItemGroup>
15+
<ProjectReference Include="..\Umbraco.StorageProviders\Umbraco.StorageProviders.csproj" />
16+
</ItemGroup>
1517
</Project>

src/Umbraco.StorageProviders.AzureBlob/CdnMediaUrlProvider.cs renamed to src/Umbraco.StorageProviders/CdnMediaUrlProvider.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using Umbraco.Cms.Core.PropertyEditors;
55
using Umbraco.Cms.Core.Routing;
66

7-
namespace Umbraco.StorageProviders.AzureBlob
7+
namespace Umbraco.StorageProviders
88
{
99
/// <summary>
1010
/// A <see cref="IMediaUrlProvider" /> that returns a CDN URL for a media item.
@@ -22,8 +22,7 @@ public class CdnMediaUrlProvider : DefaultMediaUrlProvider
2222
/// <param name="mediaPathGenerators">The media path generators.</param>
2323
/// <param name="uriUtility">The URI utility.</param>
2424
/// <exception cref="System.ArgumentNullException">options</exception>
25-
public CdnMediaUrlProvider(IOptionsMonitor<CdnMediaUrlProviderOptions> options,
26-
MediaUrlGeneratorCollection mediaPathGenerators, UriUtility uriUtility)
25+
public CdnMediaUrlProvider(IOptionsMonitor<CdnMediaUrlProviderOptions> options, MediaUrlGeneratorCollection mediaPathGenerators, UriUtility uriUtility)
2726
: base(mediaPathGenerators, uriUtility)
2827
{
2928
if (options == null) throw new ArgumentNullException(nameof(options));

src/Umbraco.StorageProviders.AzureBlob/CdnMediaUrlProviderOptions.cs renamed to src/Umbraco.StorageProviders/CdnMediaUrlProviderOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.ComponentModel.DataAnnotations;
33

4-
namespace Umbraco.StorageProviders.AzureBlob
4+
namespace Umbraco.StorageProviders
55
{
66
/// <summary>
77
/// The CDN media URL provider options.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
22
using Microsoft.Extensions.DependencyInjection;
3-
using Umbraco.StorageProviders.AzureBlob;
3+
using Umbraco.StorageProviders;
44

55
// ReSharper disable once CheckNamespace
66
// uses same namespace as Umbraco Core for easier discoverability
@@ -23,12 +23,12 @@ public static IUmbracoBuilder AddCdnMediaUrlProvider(this IUmbracoBuilder builde
2323
{
2424
if (builder == null) throw new ArgumentNullException(nameof(builder));
2525

26+
builder.MediaUrlProviders().Insert<CdnMediaUrlProvider>();
27+
2628
builder.Services.AddOptions<CdnMediaUrlProviderOptions>()
27-
.BindConfiguration("Umbraco:Storage:AzureBlob:Media:Cdn")
29+
.BindConfiguration("Umbraco:Storage:Media:Cdn")
2830
.ValidateDataAnnotations();
2931

30-
builder.MediaUrlProviders().Insert<CdnMediaUrlProvider>();
31-
3232
return builder;
3333
}
3434

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
using System;
2+
3+
[assembly:CLSCompliant(false)]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<Version>2.0.0</Version>
4+
<TargetFramework>net5.0</TargetFramework>
5+
<Nullable>enable</Nullable>
6+
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
7+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8+
</PropertyGroup>
9+
<ItemGroup>
10+
<PackageReference Include="Umbraco.Cms.Web.Common" Version="9.3.0" />
11+
</ItemGroup>
12+
</Project>

0 commit comments

Comments
 (0)