Data la mia S3 secchio che contiene le immagini in una struttura in questo modo:Recupera elenco di oggetti root solo (cartelle) in S3 - AWS SDK v3 php
root/portraits/portrait_001.jpg
root/landscapes/landscape_001.jpg
dove root è il mio secchio, e non ci sono altre i file nella mia root, solo quelle cartelle (oggetti), come faccio a recuperare un elenco di solo quegli oggetti?
portraits/
landscapes/
Ho familiarità con l'utilizzo del delimitatore e prefisso nella chiamata ListObjects.
Se faccio il seguente, ottengo alcun risultato:
$objects = $s3->getIterator('ListObjects', array(
'Bucket' => $bucket,
'Delimiter' => '/',
));
foreach($objects as $object)
echo $object['Key'] . "\n";
Se io non uso un delimitatore, ho tutto, ovviamente.
Non posso usare un prefisso perché gli oggetti che desidero sono a livello di root. Altrimenti, non ho problemi ad usare il prefisso per dire, elencare solo i file in 'ritratti /'
Dalle mie ricerche, sono riuscito a trovare solo soluzioni degli anni precedenti che si applicano solo a aws php sdk v1 o v2, e non ho avuto fortuna nel provare quelli (v3 è abbastanza diverso)
Qualche suggerimento? Mi sento come se mi mancasse qualcosa di semplice, ma cercando nella documentazione, non trovo nulla che possa aiutarmi. Come ultima risorsa, mi limiterò a dover attaccare con dichiarando manualmente una serie
$categories = ['portraits/', 'landscapes/']
Ma questo non è l'ideale nel caso in cui voglio aggiungere altre categorie in futuro, e non devono preoccuparsi di aggiungendo un'altra categoria manualmente.
Qualsiasi aiuto sarebbe molto apprezzato :)
Edit - Soluzione
devo aver cercato nei posti sbagliati durante il mio oggetto discariche, ma alla fine ha visto i prefissi comune nel risultato restituito da un ListObjects chiamata con un delimitatore di '/', in questo modo:
$s3->listObjects(array('Bucket' => $bucket, 'Delimiter' => '/'));
Hai provato a usare l'elenco dei 'CommonPrefixes' tornato da' ListBucket'? https://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html –
Originariamente non sono riuscito a trovare i prefissi comuni da nessuna parte, ma forse lo stavo ignorando durante i miei dump di oggetti nei posti sbagliati.Li ho appena trovati ora. Grazie per l'aiuto :) –