Signatur von f_list_objects vereinfacht
This commit is contained in:
@@ -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
|
||||
function f_list_objects_internal (
|
||||
i_prefix in varchar2
|
||||
,i_delimiter in varchar2
|
||||
,i_start_with in varchar2
|
||||
,i_limit in number
|
||||
i_parent_folder in varchar2
|
||||
,i_include_subfolders in varchar2
|
||||
,i_start_with in varchar2
|
||||
,i_limit in number
|
||||
) return t_net_storage_tab
|
||||
/*Kopf------------------------------------------------------------------------------------------------
|
||||
-- Beschreibung: Listet Objekte und Unterordner im Bucket ohne Rechte- oder Scope-Prüfung.
|
||||
-- Paginiert automatisch über nextStartWith bis alle Ergebnisse geladen sind.
|
||||
-- Wird von f_list_objects (öffentlich) und p_delete_folder intern genutzt.
|
||||
------------------------------------------------------------------------------------------------------
|
||||
-- Parameter: i_prefix Präfix / Pfad im Bucket (z.B. eingang/)
|
||||
-- i_delimiter Trennzeichen für Hierarchie-Simulation (/ für direkte Kinder, leer = rekursiv)
|
||||
-- i_start_with Optionaler Startpunkt für Paginierung
|
||||
-- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
|
||||
-- Parameter: i_parent_folder Ordnerpfad im Bucket (z.B. eingang/)
|
||||
-- i_include_subfolders 'Y' = alle Dateien rekursiv, 'N' = nur direkte Kinder des Ordners
|
||||
-- i_start_with Optionaler Startpunkt für Paginierung
|
||||
-- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
|
||||
------------------------------------------------------------------------------------------------------
|
||||
-- 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
|
||||
l_url := f_build_url()
|
||||
|| '?limit=' || c_page_size
|
||||
|| (case when i_prefix is not null then '&prefix=' || utl_url.escape(i_prefix, false) else '' end)
|
||||
|| (case when i_delimiter is not null then '&delimiter=' || utl_url.escape(i_delimiter, 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_include_subfolders = 'N' then '&delimiter=/' else '' end);
|
||||
|
||||
if l_cur_start is not null
|
||||
then
|
||||
@@ -297,18 +297,18 @@ create or replace package body pck_net_storage as
|
||||
end f_split_object_key;
|
||||
|
||||
function f_list_objects (
|
||||
i_prefix in varchar2
|
||||
,i_delimiter in varchar2 default null
|
||||
,i_start_with in varchar2 default null
|
||||
,i_limit in number default 0
|
||||
i_parent_folder in varchar2
|
||||
,i_include_subfolders in varchar2 default 'N'
|
||||
,i_start_with in varchar2 default null
|
||||
,i_limit in number default 0
|
||||
) return t_net_storage_tab
|
||||
/*Kopf------------------------------------------------------------------------------------------------
|
||||
-- Beschreibung: Listet Objekte und Unterordner im Bucket mit Rechteprüfung und Scope-Validierung.
|
||||
------------------------------------------------------------------------------------------------------
|
||||
-- Parameter: i_prefix Präfix / Pfad 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_start_with Optionaler Startpunkt für Paginierung
|
||||
-- i_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
|
||||
-- Parameter: i_parent_folder Ordnerpfad im Bucket (z.B. eingang/)
|
||||
-- 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_limit Maximale Anzahl Ergebnisse (0 = unbegrenzt)
|
||||
------------------------------------------------------------------------------------------------------
|
||||
-- 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
|
||||
begin
|
||||
pck_mitarbeiterrecht.p_hat_recht('LESEN_ALLES');
|
||||
p_assert_allowed(i_prefix);
|
||||
return f_list_objects_internal(i_prefix, i_delimiter, i_start_with, i_limit);
|
||||
p_assert_allowed(i_parent_folder);
|
||||
return f_list_objects_internal(i_parent_folder, i_include_subfolders, i_start_with, i_limit);
|
||||
end f_list_objects;
|
||||
|
||||
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);
|
||||
|
||||
-- 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(
|
||||
-- i_prefix => i_prefix
|
||||
-- ,i_delimiter => ''
|
||||
-- ,i_start_with => null
|
||||
-- ,i_limit => 0
|
||||
-- i_parent_folder => i_prefix
|
||||
-- ,i_include_subfolders => 'Y'
|
||||
-- ,i_start_with => null
|
||||
-- ,i_limit => 0
|
||||
--);
|
||||
|
||||
-- Nur echte Objekte löschen, keine Pseudo-Ordner
|
||||
|
||||
@@ -20,10 +20,10 @@ create or replace package pck_net_storage as
|
||||
) return t_object_path;
|
||||
|
||||
function f_list_objects (
|
||||
i_prefix in varchar2
|
||||
,i_delimiter in varchar2 default null
|
||||
,i_start_with in varchar2 default null
|
||||
,i_limit in number default 0
|
||||
i_parent_folder in varchar2
|
||||
,i_include_subfolders in varchar2 default 'N'
|
||||
,i_start_with in varchar2 default null
|
||||
,i_limit in number default 0
|
||||
) return t_net_storage_tab;
|
||||
|
||||
function f_download_object (
|
||||
|
||||
Reference in New Issue
Block a user