Guler.Editor.Storage.AzureBlob
0.2.0-alpha.0
dotnet add package Guler.Editor.Storage.AzureBlob --version 0.2.0-alpha.0
NuGet\Install-Package Guler.Editor.Storage.AzureBlob -Version 0.2.0-alpha.0
<PackageReference Include="Guler.Editor.Storage.AzureBlob" Version="0.2.0-alpha.0" />
<PackageVersion Include="Guler.Editor.Storage.AzureBlob" Version="0.2.0-alpha.0" />
<PackageReference Include="Guler.Editor.Storage.AzureBlob" />
paket add Guler.Editor.Storage.AzureBlob --version 0.2.0-alpha.0
#r "nuget: Guler.Editor.Storage.AzureBlob, 0.2.0-alpha.0"
#:package Guler.Editor.Storage.AzureBlob@0.2.0-alpha.0
#addin nuget:?package=Guler.Editor.Storage.AzureBlob&version=0.2.0-alpha.0&prerelease
#tool nuget:?package=Guler.Editor.Storage.AzureBlob&version=0.2.0-alpha.0&prerelease
Stylus.Storage.AzureBlob
Stylus için Azure Blob Storage tabanlı
IStylusFileStorageadapter'ı.
Stylus.Core abstraction'ı üstüne inşa edilmiştir.
Hızlı başlangıç
dotnet add package Stylus.Storage.AzureBlob
using Stylus.Core.FileManager;
using Stylus.Storage.AzureBlob;
builder.Services.AddStylus();
// Connection string ile (local dev / hızlı setup)
builder.Services.AddSingleton<IStylusFileStorage>(sp =>
new AzureBlobFileStorage(new AzureBlobFileStorageOptions
{
ContainerName = "stylus-uploads",
ConnectionString = builder.Configuration.GetConnectionString("AzureBlob"),
KeyPrefix = "uploads/",
}));
Auth pattern'leri (öncelik sırası)
1. ConnectionString (local dev / hızlı setup)
new AzureBlobFileStorageOptions
{
ContainerName = "stylus",
ConnectionString = "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...",
}
Local Azurite emulator için: ConnectionString = "UseDevelopmentStorage=true".
2. AccountName + AccountKey (explicit credentials)
new AzureBlobFileStorageOptions
{
ContainerName = "stylus",
AccountName = "mystorageaccount",
AccountKey = "...",
}
3. Managed identity / DefaultAzureCredential (production önerilen)
AzureBlobFileStorage bu paketin transitif yükünü hafif tutmak için
Azure.Identity paketini içermez. Managed identity kullanmak için tüketici proje
kendisi ekler ve ikinci constructor'a BlobContainerClient geçirir:
using Azure.Identity;
using Azure.Storage.Blobs;
using Stylus.Storage.AzureBlob;
var serviceClient = new BlobServiceClient(
new Uri("https://mystorage.blob.core.windows.net"),
new DefaultAzureCredential());
var container = serviceClient.GetBlobContainerClient("stylus");
builder.Services.AddSingleton<IStylusFileStorage>(sp =>
new AzureBlobFileStorage(
new AzureBlobFileStorageOptions { ContainerName = "stylus" },
container));
Konfig opsiyonları
| Property | Default | Açıklama |
|---|---|---|
ContainerName |
(zorunlu) | Azure Storage container adı |
KeyPrefix |
"" |
Tüm Stylus blob'ları bu prefix altında |
ConnectionString |
null |
Storage connection string |
AccountName / AccountKey |
null |
Explicit credentials (alternative) |
ServiceUrl |
null |
Custom endpoint (Azurite: http://127.0.0.1:10000/devstoreaccount1) |
Mimari
Azure Blob storage'ta native "klasör" yok — Stylus klasör semantiği / delimiter + GetBlobsByHierarchy ile simüle edilir:
- List:
GetBlobsByHierarchyAsync(prefix='folder/', delimiter='/')→ IsPrefix (klasörler) + IsBlob (dosyalar) - CreateDirectory: No-op
- Move:
StartCopyFromUriAsync(server-side copy) +DeleteIfExists(kaynak) - Delete recursive: Prefix altındaki tüm blob'ları DeleteBlobIfExists
Bağımlılıklar
Stylus.Core(≥ 0.1.0-alpha.0)Azure.Storage.Blobs(≥ 12.22)
Lisans
MIT — Stylus open core taahhüdü (decisions/ADR-003).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Azure.Storage.Blobs (>= 12.22.2)
- Guler.Editor.Core (>= 0.2.0-alpha.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-alpha.0 | 74 | 5/1/2026 |