Cayaqui.Storage
0.4.21
dotnet add package Cayaqui.Storage --version 0.4.21
NuGet\Install-Package Cayaqui.Storage -Version 0.4.21
<PackageReference Include="Cayaqui.Storage" Version="0.4.21" />
<PackageVersion Include="Cayaqui.Storage" Version="0.4.21" />
<PackageReference Include="Cayaqui.Storage" />
paket add Cayaqui.Storage --version 0.4.21
#r "nuget: Cayaqui.Storage, 0.4.21"
#:package Cayaqui.Storage@0.4.21
#addin nuget:?package=Cayaqui.Storage&version=0.4.21
#tool nuget:?package=Cayaqui.Storage&version=0.4.21
Cayaqui.Storage
Servicio genérico de Storage para .NET 10 con proveedores intercambiables:
- Azure Blob Storage — connection string o Managed Identity
- Local File System — con sidecar JSON para metadata/content-type (útil para dev/tests)
Distribución propietaria — requiere contrato comercial con Cayaqui. Ver
LICENSE.txt.
Instalación
dotnet add package Cayaqui.Storage
Registro
// Azure Blob con connection string
builder.Services.AddCayaquiStorage(opt => opt.UseAzureBlob(Configuration["Storage:ConnString"]));
// Azure Blob con Managed Identity
builder.Services.AddCayaquiStorage(opt =>
opt.UseAzureBlob(new Uri("https://mystorage.blob.core.windows.net")));
// Local (dev/tests)
builder.Services.AddCayaquiStorage(opt => opt.UseFileSystem("/var/data/cayaqui"));
Uso
public class InvoiceService(IStorageService storage)
{
public async Task AttachAsync(int invoiceId, Stream pdf)
{
var obj = await storage.UploadAsync(
container: "invoices",
key: $"{invoiceId}/invoice.pdf",
content: pdf,
contentType: "application/pdf");
}
public async Task<Stream> OpenAsync(int invoiceId)
{
var obj = await storage.DownloadAsync("invoices", $"{invoiceId}/invoice.pdf");
return obj.Content!;
}
public async Task<Uri> GetDownloadUrlAsync(int invoiceId)
=> await storage.GetUrlAsync("invoices", $"{invoiceId}/invoice.pdf", TimeSpan.FromMinutes(15));
}
API
| Método | Descripción |
|---|---|
UploadAsync(container, key, stream, contentType?, metadata?, ct) |
Sube un stream. Crea container si no existe. |
DownloadAsync(container, key, ct) |
Descarga el objeto (StorageObject.Content es un Stream). |
DeleteAsync(container, key, ct) |
true si existía y se eliminó. |
ExistsAsync(container, key, ct) |
Boolean rápido sin descargar contenido. |
ListAsync(container, prefix?, ct) |
IAsyncEnumerable<StorageObject>. |
GetUrlAsync(container, key, expiresIn, ct) |
SAS (Azure) o file:// (local). |
Requisitos
- .NET 10.0 o superior
- Cuenta Azure Storage (para el proveedor
AzureBlob)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Azure.Identity (>= 1.21.0)
- Azure.Storage.Blobs (>= 12.29.0)
- Cayaqui.Metadata (>= 0.4.21)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Cayaqui.Storage:
| Package | Downloads |
|---|---|
|
Cayaqui.ExcelExport
Exports strongly-typed collections of DTOs to .xlsx using the attributes from Cayaqui.Metadata: Label for headers, Currency/Percentage/Date for cell formats, Align/ColumnWidth for layout, VisibleIn/Hidden for visibility, Order for column order, Badge for cell background color. Uses Syncfusion XlsIO. Proprietary — requires a commercial agreement with Cayaqui. |
|
|
Cayaqui.PptExport
Programmatic PowerPoint slide sections for EVM reporting. Each IPptSlideSection adds a slide to a Syncfusion.Presentation IPresentation. Pairs with Cayaqui.ExcelExport and Cayaqui.ReportModels. |
|
|
Cayaqui.Reports
Template-based report generation for .NET 10 using Syncfusion File Formats (OpenXML compliant). Supports Excel (XlsIO), Word (DocIO), PowerPoint (Presentation) templates with MailMerge / template markers / placeholder replacement, native chart generation, and PDF conversion. Templates are loaded from Cayaqui.Storage. Proprietary — requires a commercial agreement with Cayaqui. |
|
|
Cayaqui.Images
Generic image processing service for .NET 10: validation (MIME/size/dimensions), EXIF + GPS extraction, auto-rotate by orientation, HEIC/WebP → JPG normalization, resize, square-center crop (avatars), text watermark, multi-size thumbnails, SHA-256 content hash for dedup, EXIF strip on output (privacy default). Backend: Magick.NET (Apache 2.0, glibc Linux / Windows / macOS). Optional integration with Cayaqui.Storage for one-call process-and-upload. Proprietary — requires a commercial agreement with Cayaqui. |
|
|
Cayaqui.WordExport
Programmatic Word document sections for EVM reporting. Each IWordDocSection adds a section to a Syncfusion.DocIO WordDocument. Pairs with Cayaqui.PptExport, Cayaqui.ExcelExport, and Cayaqui.ReportModels. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.21 | 173 | 6/23/2026 |
| 0.4.20 | 174 | 6/23/2026 |
| 0.4.15 | 174 | 6/22/2026 |
| 0.4.14 | 177 | 6/22/2026 |
| 0.4.13 | 179 | 6/22/2026 |
| 0.4.10 | 173 | 6/20/2026 |
| 0.4.5 | 170 | 6/20/2026 |
| 0.4.3 | 179 | 6/20/2026 |
| 0.4.2 | 170 | 6/20/2026 |
| 0.4.1 | 170 | 6/20/2026 |
| 0.3.9 | 177 | 6/19/2026 |
| 0.3.8 | 171 | 6/18/2026 |
| 0.3.7 | 172 | 6/18/2026 |
| 0.3.6 | 172 | 6/18/2026 |
| 0.3.5 | 172 | 6/18/2026 |
| 0.3.4 | 174 | 6/17/2026 |
| 0.1.2 | 175 | 6/16/2026 |
| 0.1.1 | 171 | 6/16/2026 |
| 0.1.0 | 172 | 6/15/2026 |
0.2.1 — Rebuild contra Cayaqui.Metadata 0.20.0 (refactor de namespaces: tipos movidos a Cayaqui.Metadata.Attributes/.Resolver/.Models/.Branding). Sin cambios de API propios; corrige TypeLoadException/CS7069 al consumir este paquete junto a Metadata 0.20.0.
Initial release. IStorageService with Azure Blob and FileSystem providers.