Class ChunkedUploadOptions
Provides options for chunked uploads: where the directory store keeps them, their sizes and chunk sizes, the limits of open uploads, and how long uploads and their outcomes are kept.
Namespace: Singulink.Net.Http.Api.Service.Uploads
Assembly: Singulink.Net.Http.Api.Service.dll
Syntax
public sealed class ChunkedUploadOptions
Remarks
Chunk sizes are always from 5 MiB, the smallest part size that object stores such as Amazon S3 accept for all but the last part, to 64 MiB, which keeps every request well under the smallest request body limit of Cloudflare's plans (100 MB). A file smaller than a chunk is sent as a single chunk. The IUploadStore can narrow the bounds further (see MinChunkSize and MaxChunkSize).
Fields
| Name | Description |
|---|---|
| ChunkSizeCeiling | The largest chunk size, in bytes: 64 MiB. |
| ChunkSizeFloor | The smallest chunk size, in bytes: 5 MiB. |
Properties
| Name | Description |
|---|---|
| CompletionPingInterval | Gets or sets how long a completion stream waits for the handler's next item before it sends a ping record. A KeepAlivePingAttribute on the handler sets the interval of its endpoint instead. Up to 24 days, and default is 10 seconds. |
| DefaultChunkSize | Gets or sets the chunk size of uploads whose client does not ask for one, in bytes. It must be from MinChunkSize to MaxChunkSize, which is checked when the application starts. Default is 5 MiB. |
| Directory | Gets or sets the directory that the directory store keeps uploads in. Relative paths are resolved against the application's content root. Servers that share uploads use the same directory, such as a network share mounted at the same path. Required unless the app registers an IUploadStore of its own: the application fails to start if neither is set. |
| IdleExpiry | Gets or sets how long an upload is kept after its last chunk while it is receiving chunks, and how long its handler can run, up to 24 days. Default is 1 day. |
| MaxChunkCount | Gets or sets the largest number of chunks of an upload. An upload that would have more chunks at the requested chunk size gets larger chunks, up to MaxChunkSize. Default is 10,000. |
| MaxChunkSize | Gets or sets the largest chunk size that a client can ask for, in bytes. Larger requested sizes are lowered to it. Default is 64 MiB, which is also the largest value. |
| MaxSize | Gets or sets the largest upload, in bytes, for endpoints whose MaxSize is not set. Default is 1 GiB. |
| MaxTotalSize | Gets or sets the largest total length of all open uploads, in bytes, or null for no limit. Default is null. |
| MaxTotalSizePerUser | Gets or sets the largest total length of the open uploads of a user, in bytes, counted across all upload endpoints, or null for no limit. Each upload counts with its length from its creation. Default is null. |
| MaxUploadsPerUser | Gets or sets the largest number of open uploads of a user, counted across all upload endpoints. Open uploads are the uploads that are receiving chunks or whose handler is running. Default is 20. |
| MinChunkSize | Gets or sets the smallest chunk size that a client can ask for, in bytes. Smaller requested sizes are raised to it. Default is 5 MiB, which is also the smallest value. |
| OutcomeRetention | Gets or sets how long the outcome of an upload, which is its handler's last item or its error, is kept for completion requests that come back for it, up to 24 days. Default is 1 hour. |
| UnstartedExpiry | Gets or sets how long an upload that has received no chunk is kept after its creation, up to IdleExpiry. It stops counting toward the limits of open uploads when it expires. Once a chunk arrives, IdleExpiry applies. Default is 15 minutes, up to 24 days. |