Signatur von f_list_objects vereinfacht

This commit is contained in:
2026-04-10 12:17:51 +02:00
parent 7921b1ae0d
commit d3ec2b168e
2 changed files with 29 additions and 29 deletions

View File

@@ -138,20 +138,20 @@ create or replace package body pck_net_storage as
-- Interne Implementierung ohne Rechteprüfung — wird von f_list_objects und p_delete_folder genutzt -- Interne Implementierung ohne Rechteprüfung — wird von f_list_objects und p_delete_folder genutzt
function f_list_objects_internal ( function f_list_objects_internal (
i_prefix in varchar2 i_parent_folder in varchar2
,i_delimiter in varchar2 ,i_include_subfolders in varchar2
,i_start_with in varchar2 ,i_start_with in varchar2
,i_limit in number ,i_limit in number
) return t_net_storage_tab ) return t_net_storage_tab
/*Kopf------------------------------------------------------------------------------------------------ /*Kopf------------------------------------------------------------------------------------------------
-- Beschreibung: Listet Objekte und Unterordner im Bucket ohne Rechte- oder Scope-Prüfung. -- Beschreibung: Listet Objekte und Unterordner im Bucket ohne Rechte- oder Scope-Prüfung.
-- Paginiert automatisch über nextStartWith bis alle Ergebnisse geladen sind. -- Paginiert automatisch über nextStartWith bis alle Ergebnisse geladen sind.
-- Wird von f_list_objects (öffentlich) und p_delete_folder intern genutzt. -- Wird von f_list_objects (öffentlich) und p_delete_folder intern genutzt.
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
-- Parameter: i_prefix Präfix / Pfad im Bucket (z.B. eingang/) -- Parameter: i_parent_folder Ordnerpfad im Bucket (z.B. eingang/)
-- i_delimiter Trennzeichen für Hierarchie-Simulation (/ für direkte Kinder, leer = rekursiv) -- i_include_subfolders 'Y' = alle Dateien rekursiv, 'N' = nur direkte Kinder des Ordners
-- i_start_with Optionaler Startpunkt für Paginierung -- i_start_with Optionaler Startpunkt für Paginierung
-- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt) -- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
-- Rückgabe: Collection t_net_storage_tab mit allen gefundenen Objekten -- Rückgabe: Collection t_net_storage_tab mit allen gefundenen Objekten
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
@@ -172,8 +172,8 @@ create or replace package body pck_net_storage as
loop loop
l_url := f_build_url() l_url := f_build_url()
|| '?limit=' || c_page_size || '?limit=' || c_page_size
|| (case when i_prefix is not null then '&prefix=' || utl_url.escape(i_prefix, false) else '' end) || (case when i_parent_folder is not null then '&prefix=' || utl_url.escape(i_parent_folder, false) else '' end)
|| (case when i_delimiter is not null then '&delimiter=' || utl_url.escape(i_delimiter, false) else '' end); || (case when i_include_subfolders = 'N' then '&delimiter=/' else '' end);
if l_cur_start is not null if l_cur_start is not null
then then
@@ -297,18 +297,18 @@ create or replace package body pck_net_storage as
end f_split_object_key; end f_split_object_key;
function f_list_objects ( function f_list_objects (
i_prefix in varchar2 i_parent_folder in varchar2
,i_delimiter in varchar2 default null ,i_include_subfolders in varchar2 default 'N'
,i_start_with in varchar2 default null ,i_start_with in varchar2 default null
,i_limit in number default 0 ,i_limit in number default 0
) return t_net_storage_tab ) return t_net_storage_tab
/*Kopf------------------------------------------------------------------------------------------------ /*Kopf------------------------------------------------------------------------------------------------
-- Beschreibung: Listet Objekte und Unterordner im Bucket mit Rechteprüfung und Scope-Validierung. -- Beschreibung: Listet Objekte und Unterordner im Bucket mit Rechteprüfung und Scope-Validierung.
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
-- Parameter: i_prefix Präfix / Pfad im Bucket (z.B. eingang/) -- Parameter: i_parent_folder Ordnerpfad im Bucket (z.B. eingang/)
-- i_delimiter Trennzeichen für Hierarchie-Simulation (Standard: null = alle Dateien inkl. Unterordner anzeigen. Nutze '/' um nur die Dateien im Ordner i_prefix zu sehen) -- i_include_subfolders 'Y' = alle Dateien rekursiv inkl. Unterordner, 'N' = nur direkte Dateien im Ordner (Standard)
-- i_start_with Optionaler Startpunkt für Paginierung -- i_start_with Optionaler Startpunkt für Paginierung
-- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt) -- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
-- Rückgabe: Collection t_net_storage_tab mit allen gefundenen Objekten -- Rückgabe: Collection t_net_storage_tab mit allen gefundenen Objekten
------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------
@@ -318,8 +318,8 @@ create or replace package body pck_net_storage as
is is
begin begin
pck_mitarbeiterrecht.p_hat_recht('LESEN_ALLES'); pck_mitarbeiterrecht.p_hat_recht('LESEN_ALLES');
p_assert_allowed(i_prefix); p_assert_allowed(i_parent_folder);
return f_list_objects_internal(i_prefix, i_delimiter, i_start_with, i_limit); return f_list_objects_internal(i_parent_folder, i_include_subfolders, i_start_with, i_limit);
end f_list_objects; end f_list_objects;
function f_download_object (i_object_key in varchar2) return blob function f_download_object (i_object_key in varchar2) return blob
@@ -451,12 +451,12 @@ create or replace package body pck_net_storage as
p_assert_allowed(i_prefix); p_assert_allowed(i_prefix);
-- TEST -- TEST
-- Alle Objekte im Prefix auflisten (kein Delimiter = rekursiv, alle Tiefen) -- Alle Objekte im Ordner auflisten (rekursiv, alle Tiefen)
--l_objects := f_list_objects_internal( --l_objects := f_list_objects_internal(
-- i_prefix => i_prefix -- i_parent_folder => i_prefix
-- ,i_delimiter => '' -- ,i_include_subfolders => 'Y'
-- ,i_start_with => null -- ,i_start_with => null
-- ,i_limit => 0 -- ,i_limit => 0
--); --);
-- Nur echte Objekte löschen, keine Pseudo-Ordner -- Nur echte Objekte löschen, keine Pseudo-Ordner

View File

@@ -20,10 +20,10 @@ create or replace package pck_net_storage as
) return t_object_path; ) return t_object_path;
function f_list_objects ( function f_list_objects (
i_prefix in varchar2 i_parent_folder in varchar2
,i_delimiter in varchar2 default null ,i_include_subfolders in varchar2 default 'N'
,i_start_with in varchar2 default null ,i_start_with in varchar2 default null
,i_limit in number default 0 ,i_limit in number default 0
) return t_net_storage_tab; ) return t_net_storage_tab;
function f_download_object ( function f_download_object (