mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-05 00:06:35 +01:00
Merge pull request #16478 from Shadowghost/cachdir.tag-support
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Artifact (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI Publish / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Artifact (push) Waiting to run
OpenAPI Publish / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI Publish / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
Add CACHEDIR.tag support
This commit is contained in:
@@ -90,6 +90,7 @@ namespace Emby.Server.Implementations.AppBase
|
||||
CreateAndCheckMarker(ProgramDataPath, "data");
|
||||
CreateAndCheckMarker(CachePath, "cache");
|
||||
CreateAndCheckMarker(DataPath, "data");
|
||||
CreateCacheDirTag(CachePath);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -100,6 +101,26 @@ namespace Emby.Server.Implementations.AppBase
|
||||
CheckOrCreateMarker(path, $".jellyfin-{markerName}", recursive);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a CACHEDIR.TAG file in the specified directory per the Cache Directory Tagging specification.
|
||||
/// This signals to backup tools (e.g. Restic, Borg) that the directory contains cached data
|
||||
/// and can be excluded from backups.
|
||||
/// </summary>
|
||||
/// <param name="path">The cache directory path.</param>
|
||||
internal static void CreateCacheDirTag(string path)
|
||||
{
|
||||
var tagPath = Path.Combine(path, "CACHEDIR.TAG");
|
||||
if (!File.Exists(tagPath))
|
||||
{
|
||||
File.WriteAllText(
|
||||
tagPath,
|
||||
"Signature: 8a477f597d28d172789f06886806bc55\n"
|
||||
+ "# This file is a cache directory tag created by Jellyfin.\n"
|
||||
+ "# For information about cache directory tags, see:\n"
|
||||
+ "#\thttps://bford.info/cachedir/\n");
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<string> GetMarkers(string path, bool recursive = false)
|
||||
{
|
||||
return Directory.EnumerateFiles(path, ".jellyfin-*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
|
||||
|
||||
@@ -228,6 +228,7 @@ namespace Emby.Server.Implementations.AppBase
|
||||
Logger.LogInformation("Setting cache path: {Path}", cachePath);
|
||||
((BaseApplicationPaths)CommonApplicationPaths).CachePath = cachePath;
|
||||
CommonApplicationPaths.CreateAndCheckMarker(((BaseApplicationPaths)CommonApplicationPaths).CachePath, "cache");
|
||||
BaseApplicationPaths.CreateCacheDirTag(cachePath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user