Skip to main content

UploadSessionTransport

Enum UploadSessionTransport 

Source
pub enum UploadSessionTransport {
    ServiceProxied {
        staging: ProxiedStaging,
    },
    DirectPut {
        promised_content: ContentRef,
    },
    DirectMultipart {
        provider_upload_id: String,
        part_size_bytes: NonZeroU64,
        checksum_algorithm: ChecksumAlgorithm,
    },
}
Expand description

The transport never changes, and each variant stores only the state required by that upload path.

Variants§

§

ServiceProxied

The service receives the bytes and writes the content object itself, so it learns size and digest from the bytes as they pass.

Fields

§staging: ProxiedStaging

Exclusive staging progress, which applies only to this transport.

§

DirectPut

The client writes the whole object through one presigned request.

Fields

§promised_content: ContentRef

The reference that signed write is minted for.

A direct-put client declares its byte length and SHA-256 before the write is authorized, because both are signed into the request and the provider refuses any body that does not match. Completion reads the stored object back against this same reference rather than believing it.

§

DirectMultipart

The client uploads parts and the provider assembles the object.

Multipart sessions do not store a content reference at creation because one-pass and streaming clients may not know the final size or checksum. The client supplies those values at completion, when LoonFS verifies the assembled object.

Fields

§provider_upload_id: String

The provider-side upload the parts assemble through, and the only provider handle LoonFS keeps: parts are the client’s bookkeeping, exactly as they are in the provider’s own API, so there is no durable record per part.

§part_size_bytes: NonZeroU64

Byte length of every part except the last, settled at begin.

A session resumed after a lost begin response reads its geometry from here rather than being told a second, possibly different, one. Zero is not a geometry, so it is not representable.

§checksum_algorithm: ChecksumAlgorithm

Checksum algorithm frozen when the session began. Part signing and completion must use this decision after any process restart.

Trait Implementations§

Source§

impl Clone for UploadSessionTransport

Source§

fn clone(&self) -> UploadSessionTransport

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UploadSessionTransport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for UploadSessionTransport

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for UploadSessionTransport

Source§

impl PartialEq for UploadSessionTransport

Source§

fn eq(&self, other: &UploadSessionTransport) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for UploadSessionTransport

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for UploadSessionTransport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.