Isoftforge.Apps.Client.Storage
1.0.1
See the version list below for details.
dotnet add package Isoftforge.Apps.Client.Storage --version 1.0.1
NuGet\Install-Package Isoftforge.Apps.Client.Storage -Version 1.0.1
<PackageReference Include="Isoftforge.Apps.Client.Storage" Version="1.0.1" />
<PackageVersion Include="Isoftforge.Apps.Client.Storage" Version="1.0.1" />
<PackageReference Include="Isoftforge.Apps.Client.Storage" />
paket add Isoftforge.Apps.Client.Storage --version 1.0.1
#r "nuget: Isoftforge.Apps.Client.Storage, 1.0.1"
#:package Isoftforge.Apps.Client.Storage@1.0.1
#addin nuget:?package=Isoftforge.Apps.Client.Storage&version=1.0.1
#tool nuget:?package=Isoftforge.Apps.Client.Storage&version=1.0.1
Isoftforge.Apps.Client.Storage
.NET client for the isoftforge Storage satellite S3 API.
Configuration
var client = StorageClient.Create(
baseUrl: "https://apps-api.isoftforge.it/api/storage",
apiKey: "ifc_your-api-key");
Or with dependency injection:
services.AddStorageClient(configuration.GetSection("Storage"));
{
"Storage": {
"BaseUrl": "https://apps-api.isoftforge.it/api/storage",
"ApiKey": "ifc_your-api-key"
}
}
- BaseUrl — hub (
https://apps-api.isoftforge.it/api/storage) or dedicated host (https://s3.isoftforge.it/api) - ApiKey — organization credential from Storage → Credentials. The API resolves the environment and default upload credential automatically.
Usage
var validation = await client.ValidateCredentialsAsync();
if (!validation.Valid) throw new InvalidOperationException(validation.Error);
await using var stream = File.OpenRead("report.pdf");
var upload = await client.UploadObjectAsync("reports/report.pdf", stream, "report.pdf");
Console.WriteLine(upload.ShareableUrl);
var objects = await client.ListObjectsAsync(limit: 50);
foreach (var item in objects)
Console.WriteLine(client.GetShareableLink(item).Url);
Shareable links
- Public objects —
https://s3.example.com/api/s3/public/{slug}/{objectKey} - Private objects —
https://s3.example.com/api/s3/access/{slug}/{objectKey}?apiKey=...&environment=...
The client builds these URLs after upload or from listed objects. Private links include the API key in the query string (same as the REST API).
Authentication
Every S3 request sends X-API-Key. The storage environment is resolved from the organization credential. Uploads use the first active upload credential for that environment unless you pass uploadCredentialUid to UploadObjectAsync or header X-Storage-Credential manually.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. |
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Http (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.