Storage Server'ı kendi web siteniz için kullanma: görseller, indirmeler, arşivler

Yayınlanma tarihi 6 dk okuma

Web sunucusundaki alan pahalıdır, Storage Server'daki değildir. Bu yazı neleri taşıyabileceğinizi, web sunucusundan hangi protokolün işlediğini ve dosyaların ziyaretçilere güvenli biçimde nasıl ulaştığını gösteriyor.

Bir web sunucusunda disk alanı en pahalı maldır. Veritabanları ve PHP için yapılmış hızlı NVMe SSD'lerin üzerinde durur ve her gigabaytla birlikte hissedilir ölçüde pahalanır. Aynı zamanda orada, bu hıza hiç ihtiyacı olmayan şeyler yatar: özgün fotoğraflar, video dosyaları, indirme arşivleri, eski yedekler.

Storage Server bunun çok küçük bir kesri kadar tutar ve tam bu yükü üstlenir. Bu yazı nelerin anlamlı biçimde taşınabileceğini, web sunucusundan hangi protokolün işlediğini, dosyaların ziyaretçilere nasıl güvenli ulaştığını ve sınırların nerede olduğunu gösteriyor.

Taşımaya ne değer, neye değmez

Depolamaya aittirWeb sunucusunda kalır
Görsellerin ve videoların özgün dosyalarıÖnizleme görselleri ve kırpılmış sürümler
İndirme arşivleri, ISO dosyaları, PDF derlemeleriCSS, JavaScript, yazı tipleri
Ham veriler, dışa aktarmalar, kayıt arşivleriVeritabanı
Web sitesinin yedekleriHer sayfa çağrısında gereken her şey

Ayrım çizgisi basit: Nadiren okunan ve bir kez büyük hâlde aktarılan şey depolamaya aittir. Her sayfa çağrısında birlikte yüklenen şey ise hızlı olduğu yerde kalır.

Storage Server nedir, ne değildir

Storage Server, kullanıcı hesapları olan bir ağ depolamasıdır. Erişim bilgileriyle bağlanır, dosya okur ya da yazarsınız. Herkese açık adresleri olan bir nesne depolaması değildir, bir CDN de değildir.

Pratikte bu şu demek: Sayfanızda bir görseli doğrudan depolamaya bağlantılayamazsınız, çünkü her erişim kimlik doğrulamalıdır. Web sunucunuz dosyayı alır ve iletir ya da süresi sınırlı indirme bağlantılarını kendiniz üretirsiniz. Bunun temiz yolu aşağıda anlatılıyor.

Bu bir kısıtlama gibi duruyor, ama bir avantajı var: Kimse adresleri tahmin ederek ya da bir bağlantıyı başkasına vererek dosyalarınızı alamaz. Erişim her zaman sizin uygulamanız, dolayısıyla sizin kurallarınız üzerinden işler.

Pratikte işleyen düzen

Üç adım, fazlası değil:

  1. Özgün dosyalar depolamada durur. Bir kez yüklenirler ve sonrasında nadiren ellenirler.
  2. Türetilmiş sürümler bir kez oluşur ve web sunucusunda durur. Yani önizleme görselleri, kırpılmış çeşitler, sıkıştırılmış sürümler. Küçüktürler ve her sayfa çağrısında gerekirler.
  3. İndirmeler sizin uygulamanız üzerinden işler. Küçük bir betik izni denetler, dosyayı depolamadan alır ve dışarı verir.

Bunu tersine çevirip önizleme görsellerini her çağrıda depolamadan yeniden alan kişi, kendisine yavaş bir web sitesi kurar. Dosya başına ağ gecikmesi toplanır ve kırk görselli bir galeri kırk kez bekler.

Hangi durum için hangi protokol

ProtokolPortNe için iyiGereksinim
SMB / CIFS445Dizin olarak bağlamaSunucuda root erişimi
SSHFS23Dizin olarak bağlama, şifreliSunucuda root erişimi
SFTP23PHP'den erişim, betikler, aktarımlargiden 23 numaralı port
HTTPS üzerinden WebDAV443Paylaşımlı hosting, kısıtlı ortamlaryalnızca HTTPS
rsync23Büyük dizinlerin eşitlenmesigiden 23 numaralı port
BorgBackup23Tekilleştirmeli yedeklemelergiden 23 numaralı port

En önemli karar zevke değil, yetkilerinize bağlıdır: Kendi sunucunuzda depolamayı dizin olarak bağlarsınız ve her uygulama, bundan haberi olmadan onu kullanabilir. Bunun nasıl olduğu Storage Server'ı ağ sürücüsü olarak bağlama yazısında anlatılıyor.

Paylaşımlı hostingde root erişiminiz yoktur, bağlama böylece elenir. Orada yol, uygulamanın içinden WebDAV ya da SFTP üzerinden geçer ve çoğu zaman WebDAV daha az dirençlidir, çünkü 443 numaralı port neredeyse hiçbir zaman kapalı değildir.

PHP'den erişimi kurma

SFTP için saf bir PHP kütüphanesi yeter, sunucuda bir uzantı gerekmez:

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('Oturum açma başarısız');
}

// Dosyayı yükle
$sftp->put('/bilder/2026/original.jpg', '/tmp/upload.jpg', SFTP::SOURCE_LOCAL_FILE);

// Dosyayı oku
$inhalt = $sftp->get('/bilder/2026/original.jpg');

WebDAV için yerleşik curl uzantısı bile yeter:

$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);

İki örnek de ana hesabı değil, bir alt hesabı kullanıyor. Nedeni bir sonraki bölümde.

Her amaç için ayrı bir alt hesap

Her Storage Server 100 taneye kadar alt hesaba izin verir, hem de her tarifede. Her biri şunları alır:

  • dışına çıkamadığı kendi başlangıç dizinini,
  • kendi parolasını,
  • kendi protokol izinlerini, yani örneğin yalnızca SFTP ve Samba yok.

Bir web sitesi için bu şu demek: web sunucusu için yalnızca SFTP kullanabilen ve yalnızca /web dizinini gören bir alt hesap, yedekleme için yalnızca /backup dizinini gören ikinci bir hesap. Web sunucusu bir gün ele geçirilirse saldırgan yedeklere ulaşamaz, çünkü o hesap onları hiç bilmez.

Bir sınır var: Alt hesap kendine ait bir alan payı almaz. Kendi dizininde kalır, ama orada tarifenin bütün depolamasını doldurabilir. Tek tek kullanıcıları gerçekten sınırlamak isteyen kişi, bunu üstlenen bir uygulamaya ihtiyaç duyar. Nextcloud'u Storage Server ile bağlama tam bu kurulumu gösteriyor.

İndirmeleri güvenli sunma

En sık yapılan hata, erişim bilgilerinin tarayıcıya gitmesine izin vermek, örneğin kullanıcı adı ve parola içeren bir bağlantı vermektir. Doğrusu, bağlantıyı sunucunuzun kurması ve dosyayı iletmesidir:

<?php
// Herhangi bir şey olmadan önce izni denetle
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;

Çok büyük dosyalarda her şeyi belleğe yüklemek yerine bloklar hâlinde okumak daha iyidir, yoksa PHP bellek sınırı kopar. Bunun için ob_end_flush() ayarlayın ve dosyayı parça parça dışarı verin.

Çok sayıda eşzamanlı indirme bekleyen kişi, ayrıca her süren indirmenin bir PHP sürecini meşgul ettiğini düşünmelidir. Belirli bir büyüklükten sonra böyle bir şey, paylaşımlı hostingin değil kendinize ait bir sunucunun arkasına aittir.

Web sitesini depolamaya yedekleme

Bu en kolay başlangıçtır ve hemen bir şey kazandırır. rsync ile yalnızca değişiklikleri aktarırsınız:

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

Tekilleştirmeli ve şifreli yedeklemeler için BorgBackup daha iyi seçimdir, depolamada doğal olarak hazır bulunur. Buna ikinci katman olarak depolamanın kendi anlık görüntüleri eklenir: tarifeye göre 10, 20, 30 ya da 40 el ile alınan anlık görüntü, ayrıca aynı sayıda otomatik olanı günlük, haftalık ve aylık ritimde.

Aynı sunucuya yedeklemeye göre fark belirleyicidir: Silinen ya da şifrelenen bir disk, yerel yedeği de birlikte götürür; ayrı bir depolamadaki yedeği götürmez.

Başlamadan önce: iki anahtar

Müşteri panelinde Storage Server'da “Erişim Ayarları” düğmesini bulursunuz. İki şeyin doğru olması gerekir:

  • Dış Erişilebilirlik açık olmalıdır, yoksa web sunucunuz internet üzerinden depolamaya ulaşamaz.
  • İstenen protokol serbest bırakılmış olmalıdır, yani SMB için Samba, SFTP ve rsync için SSH, HTTPS yolu için WebDAV.

Yeni sipariş edilen sunucularda bunların tamamı etkindir. Güvenlik gerekçesiyle ihtiyaç duymadığını kapatan kişi, daha sonra “artık çalışmıyor” durumunun en sık sebebinin tam olarak bu olduğunu akılda tutmalıdır.

Hangi tarife uygun

TarifeAlanAlt hesapAnlık görüntüFiyat
Storage-11 TB10010 artı 10 otomatik9,99 EUR
Storage-25 TB10020 artı 20 otomatik29,99 EUR
Storage-310 TB10030 artı 30 otomatik39,99 EUR
Storage-420 TB10040 artı 40 otomatik69,99 EUR

Bütün Storage Server sunucuları Almanya'da durur, FTP, FTPS, SFTP, SCP, Samba, WebDAV ve WebDAVs konuşur, rsync ile BorgBackup'ı doğal olarak yanında getirir ve IPv4 ile IPv6'ya sahiptir. Kurulum ücreti yoktur, faturalama ön ödemeli esasa göre ve asgari sözleşme süresi olmadan yapılır. Yani 1 TB ile başlayıp daha sonra, taşınmak zorunda kalmadan büyütebilirsiniz.

Bir hesap örneği: Bir web sunucusunda 1 TB ek alan, sağlayıcıya göre ayda 9,99 euronun birkaç katını tutar ve sonra web sitesiyle aynı makinede durur. Yanındaki depolama yalnızca daha ucuz değil, aynı zamanda ayrıdır.

Sıkça sorulan sorular

Görselleri doğrudan Storage Server'dan web siteme gömebilir miyim?
Görsel etiketindeki doğrudan bir bağlantıyla olmaz. Storage Server herkese açık bir web sunucusu değildir, her erişim kimlik doğrulamalıdır. Web sunucunuz dosyayı alır ve iletir ya da süresi sınırlı indirme bağlantıları üretirsiniz. Önizleme görselleri için daha iyi yol, onları bir kez oluşturup web sunucusunda önbelleğe almaktır.
Web sunucusundan hangi protokolü kullanmalıyım?
Root erişimi olan kendi sunucunuzda en rahatı SMB ya da SSHFS'tir, depolama o zaman sıradan bir dizin gibi görünür. Root erişimi olmayan paylaşımlı hostingde bu mümkün değildir; orada HTTPS üzerinden WebDAV en az dirençli yoldur, çünkü 443 numaralı port neredeyse hiçbir zaman kapalı değildir.
Storage Server bir CDN'in yerini tutar mı?
Hayır. CDN kopyaları birçok lokasyona dağıtır ve onları doğrudan ziyaretçilere sunar. Storage Server ise tek bir lokasyonda duran, erişimleri kimlik doğrulamalı bir saklama yeridir. İkisi birbirini tamamlar: özgün dosyalar depolamada, sunulan sürümler web sunucusu ya da CDN üzerinden.
Kaç alt hesap oluşturabilirim?
Her tarifede 100 taneye kadar. Her alt hesabın kendi başlangıç dizini, kendi parolası ve kendi protokol izinleri vardır. Böylece web sitesi, yalnızca SFTP kullanabilen ve yalnızca kendi dizinini gören bir hesap alır, yedekleme ise ayrı bir hesap.
Bir alt hesaba kendine ait bir alan payı verebilir miyim?
Hayır, alt hesap başına kota yoktur. Alt hesap kendi dizininde kalır, ama orada tarifenin bütün alanını doldurabilir. Tek tek kullanıcıları sınırlamak isteyen kişi bunu kendi uygulamasında yapmalıdır.
Erişim ne kadar hızlı?
Tek parça büyük dosyalarda çok iyi, darboğaz web sunucunuzun bağlantısıdır. Arka arkaya gelen çok sayıda küçük erişimde ise dosya başına ağ gecikmesi eklenir. Bu yüzden özgün dosyalar ve arşivler depolamaya, önizleme görselleri gibi sık yüklenen küçük parçalar ise web sunucusundaki bir önbelleğe aittir.
Erişim bilgileri tarayıcıda görünür mü?
Yalnızca yanlış kurarsanız. Doğrusu, bağlantıyı web sunucusunun kurması ve dosyayı iletmesidir. Erişim bilgileri o zaman sunucuda kalır, ne kaynak kodda ne de bir adreste ortaya çıkar.
Bununla web sitemi de yedekleyebilir miyim?
Evet, hem de en kolay başlangıç budur. rsync ya da BorgBackup ile yalnızca değişiklikleri aktarırsınız, buna ikinci katman olarak depolamanın anlık görüntüleri eklenir. Tarifeye göre 10 ile 40 arasında anlık görüntü mümkündür, ayrıca aynı sayıda otomatik olanı.
Bunun için kendi sunucuma ihtiyacım var mı?
Hayır. Paylaşımlı hostingden de işler, o zaman WebDAV üzerinden ya da PHP içinden SFTP ile. Yalnızca sürücü olarak bağlamak root erişimi, dolayısıyla kendi sunucunuzu gerektirir.
Bunun maliyeti nedir?
1 TB'lık Storage-1 ayda 9,99 euro, 5 TB'lık Storage-2 29,99, 10 TB'lık Storage-3 39,99 ve 20 TB'lık Storage-4 69,99 euro tutar. Kurulum ücreti yok, ön ödemeli ve asgari sözleşme süresi olmadan, lokasyon Almanya.

Storage Server Webserver WebDAV SFTP Mediendateien Downloads Backup