Namespace AjaxUploader.Providers
Classes
Azure
Global entry point for direct-to-Azure-Blob upload support.
Assign Signer once at startup. When null, the /azure/*
endpoints respond with 501 Not Implemented.
AjaxUploader.Providers.Azure.Signer = new MyAzureSigner(connectionString, container);
AzureAbortRequest
AzureCompleteRequest
AzureCompleteResult
AzureCreateRequest
AzureCreateResult
FileSystemProvider
Default provider that stores uploads and metadata in the local file system.
Gcs
Global entry point for direct-to-GCS upload support.
Set Signer once at startup; when null, the /gcs/*
endpoints respond with 501 Not Implemented.
AjaxUploader.Providers.Gcs.Signer = new MyGcsSigner(options);
GcsAbortRequest
GcsCompleteRequest
GcsCompleteResult
GcsCreateRequest
GcsCreateResult
GcsSignRequest
GcsSignResult
GcsSignerOptions
Configuration for a built-in IGcsSigner implementation. Host apps may either implement IGcsSigner directly or instantiate a reference implementation with one of these option sets.
ProviderFactory
Static factory for IUploaderProvider. The default provider is FileSystemProvider, but applications can replace it with a custom implementation.
S3
Global entry point for direct-to-S3 upload support.
Set Signer once at startup; when null, the /s3/* handler routes
respond with 501 Not Implemented.
AjaxUploader.Providers.S3.Signer = new MyS3Signer(bucket, region, credentials);
S3AbortRequest
S3CompleteRequest
S3CompleteResult
S3CreateRequest
S3CreateResult
S3ETag
Normalises S3 ETags at the handler boundary.
S3ListPartsRequest
Request for the optional ListParts signer capability. Implement a public
S3ListPartsResult ListParts(S3ListPartsRequest request) method on your
signer to let resuming clients reconcile their persisted part maps against
what S3 actually holds. The capability is discovered via reflection - it is
deliberately NOT part of IS3Signer so existing implementations
keep compiling (.NET Framework has no default interface members).
S3ListPartsResult
Result of the optional ListParts signer capability.
S3Part
S3SignRequest
S3SignResult
S3StoredPart
A part S3 reports as stored for an in-progress multipart upload.
Interfaces
IAzureSigner
Bridges AjaxUploader to an Azure Blob Storage upload session using a pre-signed blob SAS URL. The browser uses the SAS to PutBlock and PutBlockList directly; the server only signs and records metadata. The core library takes no Azure SDK dependency - host apps plug in their own signer by setting Signer.
IGcsSigner
Bridges AjaxUploader to a Google Cloud Storage resumable upload session. The core library takes no Google.Cloud.Storage SDK dependency - host apps plug in their own signer by setting Signer at startup.
GCS resumable upload flow:
- CreateUpload(GcsCreateRequest) calls
POST /upload/storage/v1/b/{bucket}/o?uploadType=resumableand returns the session URI (theLocationresponse header). - The browser PUTs chunks directly to the session URI with
Content-Rangeheaders - no per-chunk signing is required by GCS, but SignChunk(GcsSignRequest) is provided for hosts that wrap the session URI with their own short-lived signed URL (e.g. when the session URI is held server-side). - CompleteUpload(GcsCompleteRequest) records the finalised object.
- AbortUpload(GcsAbortRequest) issues
DELETEagainst the session URI to free resources.
IS3Signer
Bridges AjaxUploader to an S3-compatible multipart upload session.
The core library takes no AWS SDK dependency - host apps plug in their own signer
by setting Signer at startup (e.g. in Global.asax).
Works for any S3-API-compatible backend (AWS S3, MinIO, Backblaze B2, R2, Wasabi, etc.).
IUploaderProvider
Defines the storage operations used by AjaxUploader to save, read, and maintain uploaded files. Providers abstract where file contents and metadata live.