Skip to main content

FileUploadSession

Struct FileUploadSession 

Source
pub struct FileUploadSession { /* private fields */ }
Expand description

Manages the translation of files between the MerkleDB / pointer file format and the materialized version.

This class handles the clean operations. It’s meant to be a single atomic session that succeeds or fails as a unit; i.e. all files get uploaded on finalization, and all shards and xorbs needed to reconstruct those files are properly uploaded and registered.

Implementations§

Source§

impl FileUploadSession

Source

pub async fn new( config: Arc<TranslatorConfig>, ) -> Result<Arc<FileUploadSession>>

Source

pub async fn dry_run( config: Arc<TranslatorConfig>, ) -> Result<Arc<FileUploadSession>>

Source

pub async fn upload_files( self: &Arc<Self>, files_and_sha256: impl IntoIterator<Item = (impl AsRef<Path>, Sha256Policy)> + Send, ) -> Result<Vec<XetFileInfo>>

Source

pub fn start_clean( self: &Arc<Self>, tracking_name: Option<Arc<str>>, size: Option<u64>, sha256: Sha256Policy, ) -> Result<(UniqueID, SingleFileCleaner)>

Start to clean one file. When cleaning multiple files, each file should be associated with one Cleaner. This allows to launch multiple clean task simultaneously.

The caller is responsible for memory usage management, the parameter “buffer_size” indicates the maximum number of Vec in the internal buffer.

If a sha256 is provided via Sha256Policy::Provided, the value will be directly used in shard upload to avoid redundant computation. Sha256Policy::Skip skips SHA-256 computation entirely and no metadata_ext is included in the shard.

Source

pub async fn spawn_upload_from_path( self: &Arc<Self>, file_path: PathBuf, sha256: Sha256Policy, ) -> Result<(UniqueID, JoinHandle<Result<(XetFileInfo, DeduplicationMetrics)>>)>

Spawns a task that reads file_path and uploads it.

Returns the tracking ID and a join handle for the spawned task.

Source

pub async fn spawn_upload_bytes( self: &Arc<Self>, bytes: Vec<u8>, sha256: Sha256Policy, tracking_name: Option<Arc<str>>, ) -> Result<(UniqueID, JoinHandle<Result<(XetFileInfo, DeduplicationMetrics)>>)>

Spawns a task that uploads bytes as a single file.

Returns the tracking ID and a join handle for the spawned task.

Source

pub async fn checkpoint(self: &Arc<Self>) -> Result<()>

Source

pub fn progress(&self) -> &Arc<GroupProgress>

Source

pub fn report(&self) -> GroupProgressReport

Source

pub fn item_report(&self, id: UniqueID) -> Option<ItemProgressReport>

Source

pub fn item_reports(&self) -> HashMap<UniqueID, ItemProgressReport>

Source

pub async fn finalize(self: Arc<Self>) -> Result<DeduplicationMetrics>

Source

pub async fn finalize_with_report( self: Arc<Self>, ) -> Result<(DeduplicationMetrics, GroupProgressReport)>

Source

pub async fn finalize_with_file_info( self: Arc<Self>, ) -> Result<(DeduplicationMetrics, Vec<MDBFileInfo>)>

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> DropFlavorWrapper<T> for T

Source§

type Flavor = MayDrop

The DropFlavor that wraps T into Self
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

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

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more