pub trait ArtifactSink: Send + Sync {
    // Required methods
    fn put_bytes<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        rel_path: &'life1 str,
        bytes: &'life2 [u8],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn put_file<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        rel_path: &'life1 str,
        file_path: &'life2 Path,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    // Provided methods
    fn open_multipart<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _rel_path: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn put_domain_artifact<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _request: DomainArtifactRequest<'life1>,
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}Expand description
Destination for task output artifacts.
Required Methods§
Sourcefn put_bytes<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    rel_path: &'life1 str,
    bytes: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
 
fn put_bytes<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    rel_path: &'life1 str,
    bytes: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
Upload raw bytes under a relative path within the outputs prefix.
Sourcefn put_file<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    rel_path: &'life1 str,
    file_path: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
 
fn put_file<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    rel_path: &'life1 str,
    file_path: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
Upload a file from the local filesystem under a relative path.
Provided Methods§
Sourcefn open_multipart<'life0, 'life1, 'async_trait>(
    &'life0 self,
    _rel_path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
 
fn open_multipart<'life0, 'life1, 'async_trait>(
    &'life0 self,
    _rel_path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
Optional: open a multipart upload writer for a large artifact.
Sourcefn put_domain_artifact<'life0, 'life1, 'async_trait>(
    &'life0 self,
    _request: DomainArtifactRequest<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
 
fn put_domain_artifact<'life0, 'life1, 'async_trait>(
    &'life0 self,
    _request: DomainArtifactRequest<'life1>,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
Upload an artifact with explicit Domain metadata.