Merge pull request #10884 from umbraco/v9/feature/imagesharp-cachefolder

V9: Move default ImageSharp cache folder to TEMP and map configured value to content root
This commit is contained in:
Bjarke Berg
2021-08-23 08:06:01 +02:00
committed by GitHub
5 changed files with 165 additions and 171 deletions

320
.gitignore vendored
View File

@@ -1,164 +1,156 @@
#
# Umbraco Cms Git Ignore
#
# common files
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.orig
*.suo
*.vs10x
*.ndproj
*.ignorer.*
# common directories
.DS_Store
._.DS_Store
.vs/
/local/
# build directories
[Bb]in/
[Db]ebug*/
[Rr]elease*/
obj/
# tools
_ReSharper*/
_NCrunch_*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
tools/NDepend/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
[sS]ource
[sS]andbox
umbraco.config
App_Data/TEMP/*
[Uu]mbraco/[Pp]resentation/[Uu]mbraco/[Pp]lugins/*
[Uu]mbraco/[Pp]resentation/[Uu]ser[Cc]ontrols/*
[Uu]mbraco/[Pp]resentation/[Ss]cripts/*
[Uu]mbraco/[Pp]resentation/[Ff]onts/*
[Uu]mbraco/[Pp]resentation/[Cc]ss/*
src/Umbraco.Tests/App_Data/*
umbraco/presentation/umbraco/plugins/uComponents/uComponentsInstaller.ascx
umbraco/presentation/packages/uComponents/MultiNodePicker/CustomTreeService.asmx
src/Umbraco.Tests/config/applications.config
src/Umbraco.Tests/config/trees.config
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Tests/[Cc]onfig/umbracoSettings.config
src/packages/
src/packages/repositories.config
*.transformed
node_modules
lib-bower
src/Umbraco.Web.UI.Client/[Bb]uild/*
src/Umbraco.Web.UI.Client/[Bb]uild/[Bb]elle/
src/Umbraco.Web.UI.Client/src/[Ll]ess/*.css
src/Umbraco.Web.UI.Client/vwd.webinfo
src/*.psess
src/*.vspx
NDependOut/*
QueryResult.htm
build/ApiDocs/*
build/ApiDocs/Output/*
src/Umbraco.Web.UI.Client/bower_components/*
# ignore rule for clearing out Belle (avoid rebuilding all the time)
preserve.belle
#Ignore Rule for output of generated documentation files from Grunt docserve
src/Umbraco.Web.UI.Docs/api
src/Umbraco.Web.UI.Docs/package-lock.json
src/*.boltdata/
src/umbraco.sln.ide/*
src/.vs/
src/Umbraco.Tests/[Mm]edia
tools/docfx/*
apidocs/_site/*
src/*/project.lock.json
src/.idea/*
apidocs/api/*
build/docs.zip
build/ui-docs.zip
build/csharp-docs.zip
src/packages/
src/PrecompiledWeb/*
# build
build.out/
build.tmp/
build/hooks/
build/temp/
# Acceptance tests
cypress.env.json
/src/Umbraco.Tests.AcceptanceTest/cypress/support/chainable.ts
/src/Umbraco.Tests.AcceptanceTest/package-lock.json
/src/Umbraco.Tests.AcceptanceTest/cypress/videos/
/src/Umbraco.Tests.AcceptanceTest/cypress/screenshots/
# eof
/src/Umbraco.Web.UI.Client/TESTS-*.xml
/src/ApiDocs/api/*
/src/Umbraco.Web.UI.Client/package-lock.json
/src/Umbraco.Web.UI/wwwroot/Media/*
/src/Umbraco.Web.UI/wwwroot/is-cache/*
/src/Umbraco.Tests.Integration/App_Data/*
/src/Umbraco.Tests.Integration/TEMP/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/assets/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/js/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/lib/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/views/*
/src/Umbraco.Web.UI/wwwroot/App_Data/TEMP/*
/src/Umbraco.Web.UI/App_Data/Logs/*
/src/Umbraco.Web.UI/App_Data/TEMP/TypesCache/*
/src/Umbraco.Web.UI/App_Data/TEMP/*
/src/Umbraco.Web.UI/App_Data/Smidge/Cache/*
/src/Umbraco.Web.UI/[Uu]mbraco/[Ll]ogs
/src/Umbraco.Web.UI/[Uu]mbraco/[Dd]ata/*
/src/Umbraco.Web.UI/[Uu]mbraco/[Mm]odels/*
/src/Umbraco.Web.UI/[Vv]iews/*.vbhtml
/src/Umbraco.Web.UI/appsettings.json
/src/Umbraco.Web.UI/appsettings.Development.json
/src/Umbraco.Web.UI/appsettings.Local.json
src/Umbraco.Tests.Integration/umbraco/Data/
src/Umbraco.Tests.Integration/umbraco/logs/
src/Umbraco.Tests.Integration/Views/
src/Umbraco.Tests/TEMP/
src/Umbraco.Tests.UnitTests/umbraco/Data/TEMP/
src/Umbraco.Tests.Integration.SqlCe/umbraco/Data/TEMP/
src/Umbraco.Tests.Integration.SqlCe/DatabaseContextTests.sdf
src/Umbraco.Web.UI/umbraco/config/appsettings-schema.json
#
# Umbraco CMS .gitignore
#
# Common files
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.orig
*.suo
*.vs10x
*.ndproj
*.ignorer.*
# Common directories
.DS_Store
._.DS_Store
.vs/
/local/
# Build directories
[Bb]in/
[Db]ebug*/
[Rr]elease*/
obj/
# Tools
_ReSharper*/
_NCrunch_*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
tools/NDepend/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
[sS]ource
[sS]andbox
umbraco.config
App_Data/TEMP/*
[Uu]mbraco/[Pp]resentation/[Uu]mbraco/[Pp]lugins/*
[Uu]mbraco/[Pp]resentation/[Uu]ser[Cc]ontrols/*
[Uu]mbraco/[Pp]resentation/[Ss]cripts/*
[Uu]mbraco/[Pp]resentation/[Ff]onts/*
[Uu]mbraco/[Pp]resentation/[Cc]ss/*
src/Umbraco.Tests/App_Data/*
umbraco/presentation/umbraco/plugins/uComponents/uComponentsInstaller.ascx
umbraco/presentation/packages/uComponents/MultiNodePicker/CustomTreeService.asmx
src/Umbraco.Tests/config/applications.config
src/Umbraco.Tests/config/trees.config
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Tests/[Cc]onfig/umbracoSettings.config
src/packages/
src/packages/repositories.config
*.transformed
node_modules
lib-bower
src/Umbraco.Web.UI.Client/[Bb]uild/*
src/Umbraco.Web.UI.Client/[Bb]uild/[Bb]elle/
src/Umbraco.Web.UI.Client/src/[Ll]ess/*.css
src/Umbraco.Web.UI.Client/vwd.webinfo
src/*.psess
src/*.vspx
NDependOut/*
QueryResult.htm
build/ApiDocs/*
build/ApiDocs/Output/*
src/Umbraco.Web.UI.Client/bower_components/*
# Ignore rule for clearing out Belle (avoid rebuilding all the time)
preserve.belle
# Ignore rule for output of generated documentation files from grunt docserve
src/Umbraco.Web.UI.Docs/api
src/Umbraco.Web.UI.Docs/package-lock.json
src/*.boltdata/
src/umbraco.sln.ide/*
src/.vs/
src/Umbraco.Tests/[Mm]edia
tools/docfx/*
apidocs/_site/*
src/*/project.lock.json
src/.idea/*
apidocs/api/*
build/docs.zip
build/ui-docs.zip
build/csharp-docs.zip
src/packages/
src/PrecompiledWeb/*
# Build
build.out/
build.tmp/
build/hooks/
build/temp/
# Acceptance tests
cypress.env.json
/src/Umbraco.Tests.AcceptanceTest/cypress/support/chainable.ts
/src/Umbraco.Tests.AcceptanceTest/package-lock.json
/src/Umbraco.Tests.AcceptanceTest/cypress/videos/
/src/Umbraco.Tests.AcceptanceTest/cypress/screenshots/
/src/Umbraco.Web.UI.Client/TESTS-*.xml
/src/ApiDocs/api/*
/src/Umbraco.Web.UI.Client/package-lock.json
/src/Umbraco.Web.UI/wwwroot/Media/*
/src/Umbraco.Tests.Integration/App_Data/*
/src/Umbraco.Tests.Integration/TEMP/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/assets/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/js/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/lib/*
/src/Umbraco.Web.UI/wwwroot/[Uu]mbraco/views/*
/src/Umbraco.Web.UI/wwwroot/App_Data/TEMP/*
/src/Umbraco.Web.UI/App_Data/Logs/*
/src/Umbraco.Web.UI/App_Data/TEMP/TypesCache/*
/src/Umbraco.Web.UI/App_Data/TEMP/*
/src/Umbraco.Web.UI/App_Data/Smidge/Cache/*
/src/Umbraco.Web.UI/[Uu]mbraco/[Ll]ogs
/src/Umbraco.Web.UI/[Uu]mbraco/[Dd]ata/*
/src/Umbraco.Web.UI/[Uu]mbraco/[Mm]odels/*
/src/Umbraco.Web.UI/[Vv]iews/*.vbhtml
/src/Umbraco.Web.UI/appsettings.json
/src/Umbraco.Web.UI/appsettings.Development.json
/src/Umbraco.Web.UI/appsettings.Local.json
src/Umbraco.Tests.Integration/umbraco/Data/
src/Umbraco.Tests.Integration/umbraco/logs/
src/Umbraco.Tests.Integration/Views/
src/Umbraco.Tests/TEMP/
src/Umbraco.Tests.UnitTests/umbraco/Data/TEMP/
src/Umbraco.Tests.Integration.SqlCe/umbraco/Data/TEMP/
src/Umbraco.Tests.Integration.SqlCe/DatabaseContextTests.sdf
src/Umbraco.Web.UI/umbraco/config/appsettings-schema.json

View File

@@ -12,10 +12,10 @@ namespace Umbraco.Cms.Core.Configuration.Models
/// </summary>
public class ImagingCacheSettings
{
internal const string StaticBrowserMaxAge = "7.00:00:00"; // TimeSpan.FromDays(7);
internal const string StaticCacheMaxAge = "365.00:00:00"; // TimeSpan.FromDays(365);
internal const string StaticBrowserMaxAge = "7.00:00:00";
internal const string StaticCacheMaxAge = "365.00:00:00";
internal const int StaticCachedNameLength = 8;
internal const string StaticCacheFolder = "../umbraco/mediacache";
internal const string StaticCacheFolder = Constants.SystemDirectories.TempData + "/MediaCache";
/// <summary>
/// Gets or sets a value for the browser image cache maximum age.

View File

@@ -134,15 +134,17 @@ namespace Umbraco.Cms.Tests.Integration.TestServerTest
public override void ConfigureServices(IServiceCollection services)
{
services.AddTransient<TestUmbracoDatabaseFactoryProvider>();
Core.Hosting.IHostingEnvironment hostingEnvironment = TestHelper.GetHostingEnvironment();
TypeLoader typeLoader = services.AddTypeLoader(
GetType().Assembly,
TestHelper.GetHostingEnvironment(),
hostingEnvironment,
TestHelper.ConsoleLoggerFactory,
AppCaches.NoCache,
Configuration,
TestHelper.Profiler);
var builder = new UmbracoBuilder(services, Configuration, typeLoader);
var builder = new UmbracoBuilder(services, Configuration, typeLoader, TestHelper.ConsoleLoggerFactory, TestHelper.Profiler, AppCaches.NoCache, hostingEnvironment);
builder
.AddConfiguration()

View File

@@ -212,7 +212,7 @@ namespace Umbraco.Cms.Tests.Integration.Testing
TestHelper.Profiler);
var builder = new UmbracoBuilder(services, Configuration, typeLoader, TestHelper.ConsoleLoggerFactory, TestHelper.Profiler, AppCaches.NoCache, hostingEnvironment);
builder.Services.AddLogger(TestHelper.GetHostingEnvironment(), TestHelper.GetLoggingConfiguration(), Configuration);
builder.Services.AddLogger(hostingEnvironment, TestHelper.GetLoggingConfiguration(), Configuration);
builder.AddConfiguration()
.AddUmbracoCore()

View File

@@ -51,7 +51,7 @@ namespace Umbraco.Extensions
return Task.CompletedTask;
};
})
.Configure<PhysicalFileSystemCacheOptions>(options => options.CacheFolder = imagingSettings.Cache.CacheFolder)
.Configure<PhysicalFileSystemCacheOptions>(options => options.CacheFolder = builder.BuilderHostingEnvironment.MapPathContentRoot(imagingSettings.Cache.CacheFolder))
// We need to add CropWebProcessor before ResizeWebProcessor (until https://github.com/SixLabors/ImageSharp.Web/issues/182 is fixed)
.RemoveProcessor<ResizeWebProcessor>()
.AddProcessor<CropWebProcessor>()