Trait UploadService

Source
pub trait UploadService<I> {
    // Required methods
    fn initiate_multipart_upload(
        &self,
        auth_: BearerToken,
        upload_request: InitiateMultipartUploadRequest,
    ) -> Result<InitiateMultipartUploadResponse, Error>;
    fn list_parts(
        &self,
        auth_: BearerToken,
        upload_id: String,
        key: String,
    ) -> Result<Vec<PartWithSize>, Error>;
    fn sign_part(
        &self,
        auth_: BearerToken,
        upload_id: String,
        key: String,
        part_number: i32,
    ) -> Result<SignPartResponse, Error>;
    fn complete_multipart_upload(
        &self,
        auth_: BearerToken,
        upload_id: String,
        key: String,
        parts: Vec<Part>,
    ) -> Result<CompleteMultipartUploadResponse, Error>;
    fn abort_multipart_upload(
        &self,
        auth_: BearerToken,
        upload_id: String,
        key: String,
    ) -> Result<(), Error>;
    fn upload_file(
        &self,
        auth_: BearerToken,
        file_name: String,
        size_bytes: Option<SafeLong>,
        workspace: Option<WorkspaceRid>,
        body: I,
    ) -> Result<S3Path, Error>;
}
Expand description

The Upload Service manages file uploads to object storage.

Required Methods§

Source

fn initiate_multipart_upload( &self, auth_: BearerToken, upload_request: InitiateMultipartUploadRequest, ) -> Result<InitiateMultipartUploadResponse, Error>

Initiates a multipart upload to object storage. Returns an uploadId that should be used with listParts, signPart, and completeMultipartUpload.

Source

fn list_parts( &self, auth_: BearerToken, upload_id: String, key: String, ) -> Result<Vec<PartWithSize>, Error>

Lists the parts that have been uploaded for a given uploadId.

Source

fn sign_part( &self, auth_: BearerToken, upload_id: String, key: String, part_number: i32, ) -> Result<SignPartResponse, Error>

Signs an upload request for a single part. Returns a URL that will execute the upload without further authentication.

Source

fn complete_multipart_upload( &self, auth_: BearerToken, upload_id: String, key: String, parts: Vec<Part>, ) -> Result<CompleteMultipartUploadResponse, Error>

Completes a multipart upload to object storage. This should be called after all parts have been uploaded. Will throw EmptyMultipartUpload if there are 0 parts.

Source

fn abort_multipart_upload( &self, auth_: BearerToken, upload_id: String, key: String, ) -> Result<(), Error>

Aborts a multipart upload to S3. Frees storage used by previously uploaded parts and prevents further uploads to the same uploadId.

Source

fn upload_file( &self, auth_: BearerToken, file_name: String, size_bytes: Option<SafeLong>, workspace: Option<WorkspaceRid>, body: I, ) -> Result<S3Path, Error>

Uploads a file to S3. Intended for smaller files.

Implementors§