diff --git a/server/src/domain/storage-template/storage-template.service.ts b/server/src/domain/storage-template/storage-template.service.ts
index b04ffc89a..9aa3a0e5e 100644
--- a/server/src/domain/storage-template/storage-template.service.ts
+++ b/server/src/domain/storage-template/storage-template.service.ts
@@ -191,6 +191,7 @@ export class StorageTemplateService {
fileCreatedAt: new Date(),
originalPath: '/upload/test/IMG_123.jpg',
type: AssetType.IMAGE,
+ id: 'd587e44b-f8c0-4832-9ba3-43268bbf5d4e',
} as AssetEntity;
try {
this.render(this.compile(config.storageTemplate.template), testAsset, 'IMG_123', 'jpg');
@@ -218,6 +219,7 @@ export class StorageTemplateService {
ext,
filetype: asset.type == AssetType.IMAGE ? 'IMG' : 'VID',
filetypefull: asset.type == AssetType.IMAGE ? 'IMAGE' : 'VIDEO',
+ assetId: asset.id,
};
const systemTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
diff --git a/server/src/domain/system-config/system-config.constants.ts b/server/src/domain/system-config/system-config.constants.ts
index ca0497a9d..a1bb03a4c 100644
--- a/server/src/domain/system-config/system-config.constants.ts
+++ b/server/src/domain/system-config/system-config.constants.ts
@@ -20,6 +20,9 @@ export const supportedPresetTokens = [
'{{y}}-{{MMMM}}-{{dd}}/{{filename}}',
'{{y}}/{{y}}-{{MM}}/{{filename}}',
'{{y}}/{{y}}-{{WW}}/{{filename}}',
+ '{{y}}/{{y}}-{{MM}}-{{dd}}/{{assetId}}',
+ '{{y}}/{{y}}-{{MM}}/{{assetId}}',
+ '{{y}}/{{y}}-{{WW}}/{{assetId}}',
];
export const INITIAL_SYSTEM_CONFIG = 'INITIAL_SYSTEM_CONFIG';
diff --git a/server/src/domain/system-config/system-config.service.spec.ts b/server/src/domain/system-config/system-config.service.spec.ts
index d47b0ea7c..b094b328e 100644
--- a/server/src/domain/system-config/system-config.service.spec.ts
+++ b/server/src/domain/system-config/system-config.service.spec.ts
@@ -239,6 +239,9 @@ describe(SystemConfigService.name, () => {
'{{y}}-{{MMMM}}-{{dd}}/{{filename}}',
'{{y}}/{{y}}-{{MM}}/{{filename}}',
'{{y}}/{{y}}-{{WW}}/{{filename}}',
+ '{{y}}/{{y}}-{{MM}}-{{dd}}/{{assetId}}',
+ '{{y}}/{{y}}-{{MM}}/{{assetId}}',
+ '{{y}}/{{y}}-{{WW}}/{{assetId}}',
],
secondOptions: ['s', 'ss'],
weekOptions: ['W', 'WW'],
diff --git a/web/src/lib/components/admin-page/settings/storage-template/storage-template-settings.svelte b/web/src/lib/components/admin-page/settings/storage-template/storage-template-settings.svelte
index c0018edcb..e744b182d 100644
--- a/web/src/lib/components/admin-page/settings/storage-template/storage-template-settings.svelte
+++ b/web/src/lib/components/admin-page/settings/storage-template/storage-template-settings.svelte
@@ -56,6 +56,7 @@
ext: 'jpg',
filetype: 'IMG',
filetypefull: 'IMAGE',
+ assetId: 'a8312960-e277-447d-b4ea-56717ccba856',
};
const dt = luxon.DateTime.fromISO(new Date('2022-02-03T04:56:05.250').toISOString());
@@ -151,35 +152,36 @@
+
Approximately path length limit : {parsedTemplate().length + user.id.length + 'UPLOAD_LOCATION'.length}/260
-
- {user.storageLabel || user.id}
is the user's Storage Label
+
+ {user.storageLabel || user.id}
is the user's
+ Storage Label
+
UPLOAD_LOCATION/{user.storageLabel || user.id}/{parsedTemplate()}.jpg