Detta inlägg är gammalt och kan innehålla inaktuell information.

Felaktigheter i zip-filen

Hej, vi har fått problem med Skånetrafikens zip-fil. Det har fungerat tidigare men från den 22:a november får vi ett fel när vi packar upp den.

Central Directory corrupt.. An attempt was made to move the file pointer before the beginning of the file

Vi använder C# och System.IO.Compression.ZipArchive, vilket kanske inte är den bästa implementationen av att packa upp zip-filer. Men eftersom det har fungerat så är det någon som har ändrats.

Det funkar med Windows inbyggda zip-hanterare.

Kommentarer

  • Hej Tomas,

    Står problemet kvar? Vi har haft några problem kring den 22a november, men från den 23e november borde allt ha funkat bra. Vi har testat lokalt och det verkar funka på Linux, Windows inbyggda zip hanterare, 7-zip. Finns det skillnad om ni laddar ner filen manuellt eller programmatiskt?

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Hej Bert,

    Jag har felsökt vidare nu, och det verkar inte vara fel på zip-filen, utan vi får HTTP response 406 och tydligen så skapades en tom zip-fil då. Så det var inte konstigt att den är felaktig. Men frågan är varför vi får 406? Vi kan väl inte gjort slut på vår anropsquota redan?
  • Det är alltså vårt HEAD-anrop som får 406. Har ni inte stöd för det längre?
  • HTTP-406 kommer med följande felmedellande "This API must be called with the HTTP-header 'Accept-Encoding' set to 'gzip' or 'deflate'". Kan du granska om ni skicker en Accept-encoding header?

    Edit: Om det är en HEAD anrop så är det ett fel på vår sida, eftersom HEAD-anrop inte kräver komprimering. Det är också därför att ni inte får hela felmeddelande, eftersom den ingår i body:n. Jag ska se hur vi kan förbättra detta.
    Bert på Trafiklab
  • Jag kolla hur det ser ut. Jag tror det kan vara en kombo möjligtvis.
  • Yes, du hade rätt. Vi använde WebClient samt HttpWebRequest i dotnet för att hämta filerna resp skicka HEAD-anrop och de använder inte kompression som standard. Jag har lagt till det även på HEAD nu och det verkar fungera.

    Tack för hjälpen.

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.