Cred că acesta poate fi un caz de așteptări nepotrivite cu privire la funcționalitatea oferită de S3.
S3 nu are de fapt nicio structură, găleata are doar un set plat de obiecte cu șirul complet care ar putea fi văzut ca „calea” fiind cheia fiecărui obiect.
The Acțiune API ListObjectsV2 oferă totuși caracteristici precum specificarea unui prefix (returnează doar obiectele care au o cheie care începe cu un anumit șir de caractere) și opțiunea de a specifica un delimitator (împarte cheile după delimitatorul furnizat și grupează segmente cheie repetate) care vă permit să prezentați conținutul o găleată ca și cum ar avea structură (cum ar fi ceea ce face Consola AWS, de exemplu).
The aws s3 sincronizare
utilitatea probabil începe să funcționeze de la normal Acțiune API ListObjectsV2, dar acest API nu are nicio funcționalitate echivalentă cu --exclude
(sau --include
) din utilitarul de sincronizare, doar opțiunea de a obține lista filtrată după prefixul cheii.
Prin urmare, se pare că utilitarul de sincronizare trebuie să proceseze acele opțiuni de filtrare mai flexibile din partea clientului, deoarece procesează lista completă de obiecte pentru prefixul specificat, care nu va fi niciodată eficient dacă există un număr mare de obiecte. sub prefixul specificat care ar trebui să fie omis.
Ceea ce doriți să faceți în scenariul dvs. este probabil să specificați prefixul sau prefixele pe care le doriți, în loc să specificați un prefix mai generic și să filtrați ceea ce nu doriți. Dacă ceea ce doriți nu este identificabil prin prefix, vă recomandăm să vă schimbați denumirea, astfel încât să existe un prefix cunoscut pe care să îl puteți specifica. (Sau, eventual, chiar folosind compartimente separate pentru diferite tipuri de date, dacă asta face mai multe sens pentru situația ta.)