Klienti S3 hlásí selhání analýzy "invalid UTF-8" nebo XML kvůli nepodporovanému kódování URL
Summary: Dotčený produkt: PowerScale OneFS (verze před 9.13) Klientské aplikace S3 působící proti clusteru PowerScale OneFS hlásí při provádění požadavků "ListObjects" nebo "ListObjectsV2" (GET Bucket) výjimky analýzy "invalid UTF-8" nebo XML. Tento problém se týká prostředí, kde standardní názvy souborů ASCII obsahují speciální znaky, zejména znak procenta ('%'). ...
Symptoms
Dotčený produkt: PowerScale OneFS (verze před 9.13)
Klientské aplikace S3 pracující s clusterem PowerScale OneFS hlásí "invalid UTF-8" nebo výjimky analýzy XML při provádění 'ListObjects' nebo 'ListObjectsV2' (GET Bucket) požadavky. Tento problém se týká prostředí, kde standardní názvy souborů ASCII obsahují speciální znaky, zejména znak procenta ('%').
Cause
Příčinou je selhání dekódování URL, které se chová jako chyba UTF-8.
Když klientská aplikace S3 požádá `encoding-type=url`, očekává, že všechny klíče objektů ve vrácené datové části XML budou kódovány adresou URL (například znak "%" by měl být uvozen znakem "%25"). Systém OneFS však nepodporuje parametr "encoding-type=url" pro `GET Bucket (List Objects)` žádosti a tiše je ignoruje.
Vzhledem k tomu, že je parametr ignorován, vrátí systém OneFS v odpovědi XML nezpracovaný název souboru (např. "fred%jim"). Analyzátor XML klienta se pokusí dekódovat řetězec pomocí adresy URL, chybně interpretuje znaky bezprostředně za nezpracovaným symbolem % jako šestnáctkovou hodnotu bajtu a dojde k chybě. Toto upozornění na selhání
Resolution
Sledováno a vyřešeno v rámci PSCALE-8898 (vydání 264794)
Trvalé vyřešení tohoto problému:
- Upgrade: Upgradujte cluster na OneFS 9.13 nebo novější, kde je nativně implementována podpora parametru "encoding-type=url".
- Požadavek na backport: ** vyžádaný (OneFS 9.7.1 a 9.10.1).
Zástupné řešení
- Pokud nelze použít okamžitou opravu, musí být soubory obsahující znak "%" přejmenovány pomocí alternativního protokolu (SMB, NFS nebo místní rozhraní příkazového řádku), aby se speciální znak odebral, nebo musí být klientská aplikace překonfigurována tak, aby nevyžadovala kódování adresy URL.