Azure Blob Storage ile Laravel entegrasyonu, dosyalarınızı Microsoft’un ölçeklenebilir bulut depolamasında saklamanızı sağlar. Bu yaklaşım, üretim uygulamaları için güvenilirliği, ölçeklenebilirliği ve depolama yönetimini artırır.
Bu kılavuzda, Laravel 11, 12 ve 13‘ü Azure Blob Storage ile nasıl bağlayıp birkaç adımda dosya yükleyeceğinizi öğreneceksiniz.
Ön Gereksinimler
Ön Gereksinimler
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Laravel 11, 12 veya 13 uygulaması.
- Bir Azure hesabı.
- Oluşturulmuş bir Blob Container içeren Azure Depolama Hesabı.
- Composer yüklü.
Laravel Azure Storage paketini kurun:
composer require matthewbdaly/laravel-azure-storage
Daha sonra config/filesystems.php dosyasına yeni bir disk ekleyin:
'azure' => [
'driver' => 'azure',
'name' => env('AZURE_STORAGE_NAME'),
'key' => env('AZURE_STORAGE_KEY'),
'container' => env('AZURE_STORAGE_CONTAINER_NAME'),
'url' => env('AZURE_STORAGE_URL'),
'prefix' => null,
'connection_string' => env('AZURE_STORAGE_CONNECTION_STRING'),
],
.env Dosyanızı Yapılandırın
.env Dosyanızı YapılandırınBirkaç değişken mevcut olsa da, bağlantı dizesi yeterlidir.
AZURE_STORAGE_CONNECTION_STRING="your-azure-storage-connection-string"
Bağlantı dizesini şurada bulabilirsiniz:
Storage Account => Security + networking => Access keys
Bir servis sınıfı veya kontrolör oluşturun:
cd your-app-location
sudo mkdir Services
sudo touch AzureBlobStorageService.php
Aşağıdaki servisi oluşturun:
getClientOriginalExtension();
$contentType = $file->getClientMimeType();
$options = [
'Content-Type' => $contentType,
];
Storage::disk('azure')->putFileAs(
$path,
$file,
$fileName,
$options
);
return Storage::disk('azure')->url("{$path}/{$fileName}");
}
}
Şimdi servisi bir kontrolöre enjekte edebilir veya basitçe bir rotayla test edebilirsiniz.
use App\Services\AzureBlobStorageService;
Route::post('/upload-on-azure', function (AzureBlobStorageService $azureService) {
$file = request()->file('file');
if (!$file) {
return response()->json(['error' => 'No file provided'], 400);
}
$filePath = $azureService->uploadImage($file, 'devhub');
if (!$filePath) {
return response()->json(['error' => 'Failed to upload file.'], 500);
}
return response()->json([
'message' => 'File uploaded successfully!',
'file_path' => $filePath,
]);
});
Herhangi bir API istemcisini kullanarak bir dosya yükleyin.
Örnekler:
Postman kullanarak örnek:
Eğer dönen URL bir 404 sayfası açıyorsa veya şunu gösteriyorsa:
PublicAccessNotPermitted
Endişelenmeyin, bu beklenen bir durumdur.
Azure Storage, varsayılan olarak anonim kamu erişimini engeller.
Neden?
Neden?
Depolama hesabınız veya blob container’ınız kamu blob erişimine izin vermiyor.
Çözüm 1 (Geliştirme)
Çözüm 1 (Geliştirme)
Blob Container’ınız için kamu erişimini etkinleştirin.
Bu test için kabul edilebilir, ancak üretim için önerilmez.
Çözüm 2 (Önerilen)
Çözüm 2 (Önerilen)
Shared Access Signature (SAS) URL’leri oluşturun, böylece blobların kamusal olarak maruz kalmasını engelleyin.
Bu, depolama hesabınızı özel tutarken dosyalarınıza geçici, güvenli erişim sağlar.
Tebrikler!
Laravel uygulamanız artık Azure Blob Storage’a bağlı ve buluta dosya yükleyebilirsiniz.
Azure Blob Storage, üretim uygulamaları için mükemmel bir seçenek olup aşağıdaki özellikleri sunar:
- Yüksek kullanılabilirlik
- Ölçeklenebilirlik
- Güvenli depolama
- Düşük bakım
- Diğer Azure hizmetleriyle entegrasyon
İyi kodlamalar! ❤️
Kaynak: Orijinal Makale



