Siirry sisältöön
FileSlimmer
Työkalut
Oppaat

Miten paikallinen tiedostonkäsittely selaimessa toimii

Viimeksi tarkistettu

Jos mitään ei lähetetä palvelimelle, mikä työn oikeasti tekee – ja missä?

3 min lukuaika · tarkistettu 17. elokuuta 2026

Mitä ”paikallinen” tässä tarkoittaa

Tavanomainen verkkomuunnin on sivusto, jossa on latauspääte. Tiedostosi lähetetään koneelle, jota et hallitse, käsitellään siellä, säilytetään jonkin aikaa ja tarjotaan takaisin ladattavaksi. Paikallinen käsittely poistaa tuon lauseen keskiosan: tiedostosi lukeva koodi ajetaan siinä selaimen välilehdessä, joka sinulla on jo auki, omalla suorittimellasi, ja tulos kirjoitetaan takaisin omalle levyllesi.

Sivusto haetaan yhä verkosta – HTML, tyylitiedostot, skriptit ja WebAssembly-moduulit saapuvat kaikki palvelimelta kuten millä tahansa verkkosivulla. Ero on suunnassa. Ohjelmakoodi tulee alas; tiedostosi ei mene ylös.

Selaimessa on osat jo valmiina

Alustan ominaisuudet, joista paikallinen tiedostotyökalu rakennetaan
OminaisuusMitä se tarjoaa
File- ja Blob-rajapinnatLukevat käyttäjän valitseman tai raahaaman tiedoston tavut ilman lomakkeen lähetystä
Web WorkersAjaa raskaan työn taustasäikeessä, jotta käyttöliittymä pysyy reagoivana
WebAssemblyAjaa käännettyjä C-, C++- tai Rust-koodekkikirjastoja lähes natiivinopeudella
Canvas ja OffscreenCanvasPurkavat, piirtävät, skaalaavat ja pakkaavat kuvia uudelleen
WebCodecsAntaa pääsyn selaimen omiin laitteistokiihdytettyihin videoenkoodereihin ja -dekoodereihin
WebGPUAjaa mallien päättelyä ja rinnakkaista pikselityötä näytönohjaimella
File System AccessKirjoittaa tuloksen suoraan käyttäjän valitsemaan paikkaan siellä, missä tuki on

Mikään tässä ei ole eksoottista. Kyseessä on sama alusta, joka pyörittää taulukkolaskentaa, suunnittelutyökaluja ja pelejä välilehdessä. Ainoa epätavallinen päätös on kieltäytyä lisäämästä siihen palvelinta.

Reitti, jonka tiedosto kulkee

  • Valitset tiedoston. Selain antaa sivulle kahvan siihen – ei kopiota vaan viittauksen.
  • Sivu lukee ensimmäiset tavut tunnistaakseen todellisen tiedostotyypin sen tunnisteesta sen sijaan että luottaisi päätteeseen.
  • Se arvioi, paljonko muistia työ vaatii, ja kieltäytyy työstä tai laittaa sen jonoon, jos määrä ylittää sen minkä laite voi turvallisesti tarjota.
  • Tavut siirretään Web Workeriin. ArrayBufferin siirto vaihtaa omistajuutta eikä kopioi sitä, joten suuri tiedosto ei ole muistissa kahteen kertaan.
  • Workerin sisällä WebAssembly-koodekki tai alustan rajapinta hoitaa varsinaisen purkamisen ja pakkaamisen.
  • Tulos palaa tavuina, kääritään Blobiin ja tarjotaan sinulle ladattavaksi tai kirjoitetaan valitsemaasi paikkaan.
  • Blobin väliaikainen URL-osoite mitätöidään ja puskurit vapautetaan.

Miksi WebAssembly on se osa, joka muutti asetelman

Kuva- ja videokoodekit ovat vuosikymmenten huolellisesti optimoitua C-koodia. Niiden kirjoittaminen uudelleen JavaScriptillä ei ollut koskaan realistista. WebAssembly on siirrettävä binäärinen käskymuoto, jota selaimet suorittavat hiekkalaatikossa lähes natiivikoodin nopeudella, mikä tarkoittaa että nuo olemassa olevat kirjastot voidaan kääntää ja toimittaa selaimeen sellaisinaan.

Hiekkalaatikko on yhtä tärkeä kuin nopeus. WebAssembly-moduulilla ei ole automaattista pääsyä tiedostojärjestelmääsi, verkkoosi tai muihin välilehtiisi. Se näkee sen muistin, jonka sivu sille antaa, eikä mitään muuta. Haitallinen tai vain buginen koodekki ei voi lähteä harhailemaan ja lukea jotain, mitä sille ei annettu.

Mikä käyttää yhä verkkoa, ja miksi se ei ole tiedostosi

Verkosta saapuu kolme asiaa: itse sivu, avaamasi työkalun moottori ja – taustanpoistoa varten – mallin painot. Kaikki kolme ovat FileSlimmerin omia staattisia resursseja, jotka haetaan FileSlimmerin omasta originista ennen kuin yhtäkään sinun tavuistasi luetaan. Ne ovat latauksia, ne ovat välimuistitettavissa, ja ensimmäisen käyttökerran jälkeen ne voidaan tarjota selaimen omasta välimuistista ilman verkkoa lainkaan.

Kaikki sen jälkeen on paikallista. Moottorit saavat tiedoston tavut vain sivulta postMessage-kutsun kautta; niille ei koskaan anneta URL-osoitetta, johon lähettää jotain, ja Content Security Policy rajoittaa sitä, minne sivu voisi ylipäätään yhdistää, vaikka jokin koodi yrittäisi.

Vaihtokaupat suoraan sanottuna

Paikallinen käsittely vastaan palvelinkäsittely
NäkökohtaSelaimessasiPalvelimella
Minne tiedostosi meneeEi minnekäänKoneelle, jota et hallitse
NopeusSen mukaan mihin laitteesi pystyySen mukaan mistä ylläpitäjä on maksanut
Hyvin suuret tiedostotRajana selaimen muistiRajana ylläpitäjän asettamat rajat
Toimii ilman verkkoaKyllä, kun moottori on välimuistissaEi
Eksoottiset muodotVain se, mikä kääntyy WebAssemblyksiKaikki, minkä ylläpitäjä asentaa
Tuhannen tiedoston eräLaitteen rajoittamaYleensä sopivampi

Paikallinen käsittely ei ole kauttaaltaan parempi. Se on parempi silloin, kun tiedosto on yksityinen, kun laite on riittävän tehokas ja kun työ mahtuu muistiin. Palvelin on parempi silloin, kun käsiteltävää on paljon enemmän kuin yksi kone pystyy pitämään sisällään. On hyödyllisempää olla selvillä siitä, kummassa tilanteessa on, kuin väittää yhden lähestymistavan voittavan kaikkialla.

Mitä tässä ei väitetä

Tämä on lausunto siitä, mitä tämä sovellus tekee. Se ei ole väite selainlaajennuksistasi, jotka voivat lukea minkä tahansa avaamasi sivun sisällön, eikä käyttöjärjestelmästäsi, joka voi tarkastella mitä tahansa koskemaasi tiedostoa, eikä verkko-operaattoristasi, joka näkee että kävit sivustolla. Ne ovat minkä tahansa verkkosivuston ulottumattomissa, ja työkalu joka väittää muuta liioittelee.

Väite on kapea ja tarkistettavissa: valitsemasi tiedostot käsitellään paikallisesti tässä selaimessa, eikä FileSlimmer lähetä niitä palvelimelle. Seuraava opas kertoo, miten sen voi todeta itse sen sijaan että uskoisi sen.

Työkalut tähän

Lähteet

Lisää oppaita

Kaikki FileSlimmerin oppaat