Bu proje, gRPC kullanarak dosya yükleme ve indirme işlemlerini gerçekleştiren bir demo uygulamasıdır. Proje, modern bir mikroservis mimarisi kullanılarak geliştirilmiştir.
Proje üç ana bileşenden oluşmaktadır:
- rpc.api: REST API endpoints ve client tarafı işlemleri
- rpc.server: gRPC sunucu implementasyonu ve dosya işlemleri
- rpc.sdk: Protokol tanımlamaları ve shared kod
- Dosya yükleme ve indirme işlemleri
- Çeşitli dosya tiplerini destekleme (resim, video, ses, döküman vb.)
- Güvenli dosya işlemleri
- Base64 encoding/decoding
- Dosya boyutu limiti (10MB)
- Sıkıştırma desteği
POST /upload
Content-Type: multipart/form-dataParametreler:
file: Yüklenecek dosyafileType: Dosya tipi (Image, Video, Audio, Document)
GET /download/{fileName}- Text dosyaları (.txt)
- PDF dosyaları (.pdf)
- Microsoft Office dosyaları (.doc, .docx, .xls, .xlsx)
- Resim dosyaları (.png, .jpg, .jpeg, .gif)
- CSV dosyaları (.csv)
- Projeyi klonlayın
- Gerekli NuGet paketlerini yükleyin
- Projeyi derleyin
- Önce gRPC sunucusunu başlatın:
cd rpc.server
dotnet run- API'yi başlatın:
cd rpc.api
dotnet run- Path traversal koruması
- Dosya tipi doğrulama
- Antiforgery koruması (upload endpoint'i hariç)
- Yetkilendirme ve kimlik doğrulama altyapısı
- Yüklenen dosyalar
uploadsklasöründe saklanır - Maksimum dosya boyutu 10MB ile sınırlandırılmıştır
- Tüm dosya işlemleri asenkron olarak gerçekleştirilir
- .NET 8.0
- gRPC
- Protocol Buffers
- REST API
- Swagger UI desteği