Storage Server voor uw eigen website gebruiken: afbeeldingen, downloads, archieven

Gepubliceerd op 7 min leestijd

Ruimte op een webserver is duur, ruimte op een Storage Server niet. Dit artikel laat zien wat u kunt verplaatsen, welk protocol vanaf de webserver werkt en hoe de bestanden veilig bij uw bezoekers aankomen.

Op een webserver is schijfruimte het duurste goed. Die ruimte staat op snelle NVMe-SSD's die voor databases en PHP gebouwd zijn, en met elke gigabyte wordt ze merkbaar duurder. Tegelijk staan daar dingen die die snelheid nooit nodig hebben: originele foto's, videobestanden, downloadarchieven, oude back-ups.

Een Storage Server kost daarvan een fractie en neemt precies die last weg. Dit artikel laat zien wat u zinvol kunt verplaatsen, welk protocol vanaf de webserver werkt, hoe de bestanden veilig bij uw bezoekers aankomen en waar de grenzen liggen.

Wat de moeite waard is om te verplaatsen, en wat niet

Hoort op de opslagBlijft op de webserver
Originelen van afbeeldingen en video'sMiniaturen en bijgesneden versies
Downloadarchieven, ISO-bestanden, pdf-verzamelingenCSS, JavaScript, lettertypen
Ruwe gegevens, exports, logarchievenDe database
Back-ups van de websiteAlles wat bij elke paginaweergave nodig is

De scheidslijn is eenvoudig: wat zelden gelezen wordt en één keer in grote stukken wordt overgedragen, hoort op de opslag. Wat bij elke paginaweergave meegeladen wordt, blijft waar het snel is.

Wat een Storage Server is, en wat hij niet is

Een Storage Server is netwerkopslag met gebruikersaccounts. U maakt verbinding met inloggegevens en leest of schrijft bestanden. Hij is geen objectopslag met openbare adressen en geen CDN.

In de praktijk betekent dat: u kunt in uw pagina geen afbeelding rechtstreeks naar de opslag laten verwijzen, want elke toegang is aangemeld. Uw webserver haalt het bestand op en geeft het door, of u maakt zelf downloadlinks met een beperkte geldigheidsduur. Hoe dat netjes gaat, staat verderop.

Dat klinkt als een beperking, maar het heeft een voordeel: niemand kan uw bestanden buitmaken door adressen te raden of een link door te sturen. De toegang loopt altijd via uw toepassing, en dus via uw regels.

Het patroon dat in de praktijk werkt

Drie stappen, meer is het niet:

  1. De originelen staan op de opslag. Ze worden één keer geüpload en daarna zelden aangeraakt.
  2. Afgeleide versies ontstaan één keer en staan op de webserver. Dus miniaturen, bijgesneden varianten, gecomprimeerde versies. Ze zijn klein, en ze zijn bij elke paginaweergave nodig.
  3. Downloads lopen via uw toepassing. Een klein script controleert de rechten, haalt het bestand van de opslag en levert het uit.

Wie dat omdraait en miniaturen bij elke aanvraag opnieuw van de opslag haalt, bouwt een langzame website. De netwerklatentie per bestand telt op, en een galerij met veertig afbeeldingen wacht veertig keer.

Welk protocol voor welk geval

ProtocolPoortGoed voorVereist
SMB / CIFS445Koppelen als maprootrechten op de server
SSHFS23Koppelen als map, versleuteldrootrechten op de server
SFTP23Toegang vanuit PHP, scripts, overdrachtenuitgaande poort 23
WebDAV via HTTPS443shared hosting, beperkte omgevingenalleen HTTPS
rsync23Synchroniseren van grote mappenuitgaande poort 23
BorgBackup23Back-ups met deduplicatieuitgaande poort 23

De belangrijkste beslissing hangt niet van smaak af, maar van uw rechten: op een eigen server koppelt u de opslag als map, en elke toepassing kan hem gebruiken zonder er iets van te weten. Hoe dat gaat, leest u in Storage Server als netwerkschijf koppelen.

Op shared hosting hebt u geen rootrechten, koppelen valt daarmee weg. Daar loopt de weg via WebDAV of SFTP vanuit de toepassing zelf, en WebDAV geeft daarbij meestal de minste weerstand, omdat poort 443 praktisch nooit geblokkeerd is.

Toegang vanuit PHP instellen

Voor SFTP volstaat een zuivere PHP-bibliotheek, een extensie op de server is niet nodig:

composer require phpseclib/phpseclib:~3.0
use phpseclib3\Net\SFTP;

$sftp = new SFTP('u123456.storage.kernelhost.net', 23);
if (!$sftp->login('u123456-sub1', $passwort)) {
    throw new RuntimeException('Aanmelden mislukt');
}

// Bestand uploaden
$sftp->put('/bilder/2026/original.jpg', '/tmp/upload.jpg', SFTP::SOURCE_LOCAL_FILE);

// Bestand lezen
$inhalt = $sftp->get('/bilder/2026/original.jpg');

Voor WebDAV is zelfs de ingebouwde curl-extensie genoeg:

$ch = curl_init('https://u123456.storage.kernelhost.net/bilder/2026/original.jpg');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'u123456-sub1:' . $passwort,
    CURLOPT_TIMEOUT        => 30,
]);
$inhalt = curl_exec($ch);
curl_close($ch);

Beide voorbeelden gebruiken een subaccount, niet het hoofdaccount. Waarom dat zo is, staat in de volgende paragraaf.

Voor elk doel een eigen subaccount

Elke Storage Server staat tot 100 subaccounts toe, en dat geldt bij elk tarief. Elk subaccount krijgt:

  • een eigen startmap waar het niet uit kan komen,
  • een eigen wachtwoord,
  • eigen protocolrechten, dus bijvoorbeeld alleen SFTP en geen Samba.

Voor een website betekent dat: één subaccount voor de webserver, dat alleen SFTP mag en alleen /web ziet, en een tweede voor de back-up, dat alleen /backup ziet. Wordt de webserver ooit overgenomen, dan komt de aanvaller niet bij de back-ups, want dat account kent ze helemaal niet.

Eén grens is er wel: een subaccount krijgt geen eigen ruimtelimiet. Het blijft in zijn map, maar kan daar de volledige opslag van het tarief volschrijven. Wie afzonderlijke gebruikers werkelijk wil begrenzen, heeft er een toepassing voor nodig die dat overneemt. Nextcloud met de Storage Server verbinden laat precies deze opzet zien.

Downloads veilig uitleveren

De meest gemaakte fout is om de inloggegevens tot in de browser te laten komen, bijvoorbeeld met een link die gebruikersnaam en wachtwoord bevat. Goed is dat uw server de verbinding opbouwt en het bestand doorgeeft:

<?php
// Rechten controleren voordat er iets anders gebeurt
if (!nutzer_darf_datei($_GET['id'])) {
    http_response_code(403);
    exit;
}

$sftp = neue_verbindung();
$datei = $sftp->get(pfad_zu($_GET['id']));

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="dokument.pdf"');
header('Content-Length: ' . strlen($datei));
echo $datei;

Bij heel grote bestanden leest u beter in blokken dan dat u alles in het geheugen laadt, anders loopt u tegen de geheugenlimiet van PHP aan. Gebruik daarvoor ob_end_flush() en lever het bestand stuk voor stuk uit.

Wie veel gelijktijdige downloads verwacht, moet er bovendien aan denken dat elke lopende download een PHP-proces bezet houdt. Vanaf een zekere omvang hoort zoiets achter een eigen server en niet achter shared hosting.

Een back-up van de website op de opslag

Dat is de eenvoudigste start, en het levert direct iets op. Met rsync draagt u alleen de wijzigingen over:

rsync -az --delete -e "ssh -p 23" \
      /var/www/example.com/ \
      u123456-sub2@u123456.storage.kernelhost.net:/backup/web/

Voor back-ups met deduplicatie en versleuteling is BorgBackup de betere keuze, en het is op de opslag standaard aanwezig. Daar komen de snapshots van de opslag zelf als tweede laag bovenop: afhankelijk van het tarief 10, 20, 30 of 40 handmatige snapshots, plus even zoveel automatische in een dagelijks, wekelijks en maandelijks ritme.

Het verschil met een back-up op dezelfde server is het beslissende: een gewiste of versleutelde schijf neemt een lokale back-up mee, een back-up op gescheiden opslag niet.

Voordat u begint: twee schakelaars

In het klantenpaneel vindt u bij de Storage Server de knop „Toegangsinstellingen". Twee dingen moeten goed staan:

  • Externe bereikbaarheid moet ingeschakeld zijn, anders komt uw webserver via het internet niet bij de opslag.
  • Het gewenste protocol moet vrijgegeven zijn, dus Samba voor SMB, SSH voor SFTP en rsync, WebDAV voor de weg via HTTPS.

Bij nieuw bestelde servers staat dit alles aan. Wie om veiligheidsredenen uitschakelt wat hij niet nodig heeft, moet eraan denken dat juist dat later de meest voorkomende oorzaak is van „het werkt niet meer".

Welk tarief past

TariefRuimteSubaccountsSnapshotsPrijs
Storage-11 TB10010 plus 10 automatisch9,99 EUR
Storage-25 TB10020 plus 20 automatisch29,99 EUR
Storage-310 TB10030 plus 30 automatisch39,99 EUR
Storage-420 TB10040 plus 40 automatisch69,99 EUR

Alle Storage Servers staan in Duitsland, spreken FTP, FTPS, SFTP, SCP, Samba, WebDAV en WebDAVs, hebben rsync en BorgBackup standaard aan boord en beschikken over IPv4 en IPv6. Er zijn geen installatiekosten, de afrekening loopt op prepaidbasis zonder minimale looptijd. U kunt dus met 1 TB beginnen en later vergroten, zonder te verhuizen.

Een rekenvoorbeeld: 1 TB extra ruimte op een webserver kost afhankelijk van de aanbieder een veelvoud van 9,99 euro per maand, en die ruimte staat dan op dezelfde machine als de website. De opslag ernaast is niet alleen goedkoper, hij is ook gescheiden.

Veelgestelde vragen

Kan ik afbeeldingen rechtstreeks van de Storage Server in mijn website opnemen?
Niet met een rechtstreekse link in de afbeeldingstag. Een Storage Server is geen openbare webserver, elke toegang is aangemeld. Uw webserver haalt het bestand op en geeft het door, of u maakt downloadlinks met een beperkte geldigheidsduur. Voor miniaturen is de betere weg: ze één keer aanmaken en op de webserver in een cache bewaren.
Welk protocol neem ik vanaf de webserver?
Op een eigen server met rootrechten zijn SMB of SSHFS het gemakkelijkst, want de opslag verschijnt dan als een normale map. Op shared hosting zonder rootrechten kan dat niet, daar is WebDAV via HTTPS de weg van de minste weerstand, omdat poort 443 praktisch nooit geblokkeerd is.
Vervangt een Storage Server een CDN?
Nee. Een CDN verdeelt kopieën over veel locaties en levert ze rechtstreeks aan bezoekers uit. Een Storage Server is een opslagplaats op één locatie, en elke toegang daartoe is aangemeld. Beide vullen elkaar aan: de originelen op de opslag, de uitgeleverde versies via de webserver of een CDN.
Hoeveel subaccounts kan ik aanmaken?
Tot 100, bij elk tarief. Elk subaccount heeft een eigen startmap, een eigen wachtwoord en eigen protocolrechten. Zo krijgt de website een account dat alleen SFTP mag en alleen zijn eigen map ziet, en de back-up een gescheiden account.
Kan ik een subaccount eigen opslagruimte toewijzen?
Nee, een quotum per subaccount bestaat niet. Een subaccount blijft in zijn map, maar kan daar de volledige ruimte van het tarief gebruiken. Wie afzonderlijke gebruikers wil begrenzen, moet dat in de eigen toepassing doen.
Hoe snel is de toegang?
Voor grote bestanden in één stuk heel goed, het knelpunt is de aansluiting van uw webserver. Bij veel kleine aanvragen na elkaar komt per bestand de netwerklatentie erbij. Daarom horen originelen en archieven op de opslag, maar kleine en vaak geladen onderdelen zoals miniaturen in een cache op de webserver.
Zijn de inloggegevens zichtbaar in de browser?
Alleen als u het verkeerd bouwt. Goed is dat de webserver de verbinding opbouwt en het bestand doorgeeft. De inloggegevens blijven dan op de server en duiken noch in de broncode noch in een adres op.
Kan ik hiermee ook een back-up van mijn website maken?
Ja, en dat is de eenvoudigste start. Met rsync of BorgBackup draagt u alleen de wijzigingen over, daar komen de snapshots van de opslag als tweede laag bovenop. Afhankelijk van het tarief zijn 10 tot 40 snapshots mogelijk, plus even zoveel automatische.
Heb ik daarvoor een eigen server nodig?
Nee. Het werkt ook vanaf shared hosting, dan via WebDAV of SFTP vanuit PHP. Alleen het koppelen als schijf vereist rootrechten en daarmee een eigen server.
Wat kost dat?
Storage-1 met 1 TB kost 9,99 euro per maand, Storage-2 met 5 TB 29,99, Storage-3 met 10 TB 39,99 en Storage-4 met 20 TB 69,99. Zonder installatiekosten, op prepaidbasis en zonder minimale looptijd, locatie Duitsland.

Storage Server Webserver WebDAV SFTP Mediendateien Downloads Backup