Skip to main content

BlobsSection

Struct BlobsSection 

Source
pub struct BlobsSection {
    pub max_blob_bytes: Option<u64>,
    pub account_quota_bytes: Option<u64>,
    pub total_quota_bytes: Option<u64>,
    pub collection_grace_secs: Option<u64>,
}
Expand description

What one blob, one account’s blobs, and every account’s blobs together may come to.

Reload: needs a restart today. A running quota is enforced against the value the store was built with; there is no seam to adjust it live.

Fields§

§max_blob_bytes: Option<u64>

Longest a single blob may be, in bytes. Mirrors --max-blob. The built-in default is 5 MiB (5_242_880).

Reasonable range: 1_000_000 to account_quota_bytes. 1_000_000 is the largest image app.bsky’s lexicons accept, such as an avatar, so below it an agent cannot upload one. Above the account quota, no blob that long can be stored.

§account_quota_bytes: Option<u64>

What one account’s blobs may come to, in bytes. Mirrors --blob-quota. The built-in default is 64 MiB (67_108_864).

Reasonable range: max_blob_bytes to total_quota_bytes. Below max_blob_bytes, an account cannot store one blob of the size it is allowed. Above the total, one account can fill what every account shares.

§total_quota_bytes: Option<u64>

What every account’s blobs may come to together, in bytes. No flag mirrors this, only this key. An upload past it is refused with 507 StorageFull, naming this total.

Reasonable range: account_quota_bytes to half the data volume. Below one account’s quota, the total refuses an account the quota it was promised. Above half, the rest of the volume may not hold what shares it: the log up to [capacity] log_budget_bytes, two checkpoints as large as the state while a new one is written, and the record heap, which grows with every record written. Unset, only each account’s quota bounds the blobs, and that quota times the number of accounts can be more than the volume holds.

§collection_grace_secs: Option<u64>

How long a deleted blob is kept before collection, in seconds. Named collection_grace to match didbot_pds::blobs::BlobLimits’s field of the same name on the branch that adds it, rather than inventing a second name for the same setting.

Trait Implementations§

Source§

impl Clone for BlobsSection

Source§

fn clone(&self) -> BlobsSection

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 BlobsSection

Source§

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

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

impl Default for BlobsSection

Source§

fn default() -> BlobsSection

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for BlobsSection

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 PartialEq for BlobsSection

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for BlobsSection

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 Eq for BlobsSection

Source§

impl StructuralPartialEq for BlobsSection

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> 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> 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.
Source§

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