S3-klienter rapporterer "ugyldige UTF-8"- eller XML-fortolkningsfejl på grund af ikke-understøttet URL-kodning
Summary: Berørt produkt: PowerScale OneFS (versioner før 9.13) S3-klientprogrammer, der kører mod en PowerScale OneFS-klynge, rapporterer "ugyldige UTF-8"- eller XML-parsingundtagelser, når der udføres "ListObjects"- eller "ListObjectsV2"-anmodninger (GET Bucket). Dette problem påvirker miljøer, hvor ASCII-standardfilnavne indeholder specialtegn, især procenttegnet ("%"). ...
Symptoms
Berørt produkt: PowerScale OneFS (versioner før 9.13)
S3-klientprogrammer, der kører mod en PowerScale OneFS-klyngerapporter: "invalid UTF-8" eller XML-parsing undtagelser, når du udfører 'ListObjects»eller «ListObjectsV2' (GET Bucket) anmodninger. Dette problem påvirker miljøer, hvor ASCII-standardfilnavne indeholder specialtegn, især procenttegnet ("%").
Cause
Årsagen er en URL-afkodningsfejl, der fungerer som en UTF-8-fejl.
Når et S3-klientprogram anmoder om `encoding-type=url`, forventes det, at alle objektnøgler i de returnerede XML-data er URL-kodede (f.eks. skal tegnet "%" udelades til "%25"). OneFS understøtter dog ikke parameteren 'encoding-type=url' for `GET Bucket (List Objects)` anmoder og ignorerer det lydløst.
Da parameteren ignoreres, returnerer OneFS raw-filnavnet (f.eks. "fred%jim") i XML-svaret. Klientens XML-parser forsøger at URL-afkode strengen, fejlfortolker tegnene umiddelbart efter det rå '%'-symbol som en hexadecimal byteværdi og går ned. Dette nedbrud advarer om
Resolution
Sporet og løst under PSCALE-8898 (problem 264794)
Sådan løses dette problem permanent:
- Opgradere: Opgrader klyngen til OneFS 9.13 eller nyere, hvor understøttelse af 'encoding-type=url' oprindeligt er implementeret.
- Backport-anmodning:** anmodet om (OneFS 9.7.1 og 9.10.1).
Løsning
- Hvis der ikke kan anvendes en øjeblikkelig programrettelse, skal de filer, der indeholder tegnet "%", omdøbes ved hjælp af en alternativ protokol (SMB, NFS eller lokal CLI) for at fjerne specialtegnet, eller klientprogrammet skal omkonfigureres, så der ikke anmodes om URL-kodning.