Misafirlerin telefonlarından toplu fotoğraf yükleyebildiği basit bir web uygulaması. Backend .NET 8 Minimal API, veritabanı SQLite, dosya saklama Azure Blob Storage.
-
Tek sayfada sürükle-bırak veya seç-yükle
-
Toplu yükleme (≥30 foto) ve eşzamanlı yükleme
-
Tarayıcıda yeniden boyutlandırma + JPEG sıkıştırma (daha hızlı, daha az alan)
-
Galeride yalnızca gerçekten var olan blob’lar listelenir (bozuk link yok)
-
.NET 8 SDK
-
Azure Storage hesabı (Blob)
-
Yerel için: SQLite (dosya tabanlı, ek servis gerekmez)
- Proje klasöründe paketleri çekin:
dotnet restore
- (İsteğe bağlı) EF komutlarını kullanacaksanız:
dotnet tool install --global dotnet-ef
dotnet ef database update
Çalıştırırken uygulama zaten otomatik migrasyon uygular.
appsettings.json içeriğini kendi bağlantılarınızla doldurun (mevcut connection string’inizi aynen bırakın):
{
"ConnectionStrings": {
"Default": "Data Source=app.db",
"BlobStorage": "DefaultEndpointsProtocol=https;AccountName=HESAP_ADIN;AccountKey=HESAP_ANAHTARIN;EndpointSuffix=core.windows.net"
},
"BlobContainer": "photos",
"Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } },
"AllowedHosts": "*"
}
- Alternatif olarak connection string yerine:
{
"ConnectionStrings": { "Default": "Data Source=app.db" },
"BlobAccountName": "HESAP_ADIN",
"BlobAccountKey": "HESAP_ANAHTARIN",
"BlobContainer": "photos"
}
- Üretimde bu değerleri ortam değişkeniyle de verebilirsiniz: ConnectionStrings__BlobStorage, ConnectionStrings__Default, BlobContainer (veya BlobAccountName, BlobAccountKey).
dotnet run
-
Uygulama varsayılan olarak http://localhost:5000 (HTTPS: 5001) adresindedir.
-
İlk açılışta DB migrasyonları uygulanır.
-
Varsayılan olarak slug = ortak isimli bir etkinlik yoksa oluşturulur.
- Yükleme sayfası:
http://localhost:5000/index.html?slug=ortak
- URL parametresi olarak slug (alternatif: code, event, s) desteklenir.
- Aynı anda 30+ foto seçebilirsiniz; istemci tarafında sıkıştırma/yeniden boyutlandırma yapılır.
- Yükleme sayfasındaki “Galeriyi Aç” butonuna tıklayın (ayni slug için).
- Yalnızca blob’da gerçekten mevcut olan görseller listelenir.