Skip to main content

upload_large_files

Function upload_large_files 

Source
pub async fn upload_large_files<C: HttpClient>(
    client: &MesaClient<C>,
    options: UploadLargeFilesOptions,
) -> Result<CommitSummary, MesaError>
Expand description

Upload large files to a repository using LFS.

This convenience function:

  1. Computes SHA-256 of each file
  2. Requests pre-signed upload URLs from the LFS endpoint
  3. Uploads file content directly to S3
  4. Creates a commit with LFS pointer references

§Errors

Returns MesaError if any step fails (API request, S3 upload, or commit creation).

§Example

use mesa_dev::{Mesa, MesaError};
use mesa_dev::helpers::{upload_large_files, LargeFile, UploadLargeFilesOptions};
use mesa_dev::models::Author;

let client = Mesa::new("api-key");
let content = std::fs::read("large-model.bin").unwrap();

let result = upload_large_files(
    &client,
    UploadLargeFilesOptions {
        org: "my-org".into(),
        repo: "my-repo".into(),
        branch: "main".into(),
        message: "Add large model".into(),
        author: Author {
            name: "Bot".into(),
            email: "bot@example.com".into(),
            date: None,
        },
        files: vec![LargeFile {
            path: "models/model.bin".into(),
            content,
        }],
        base_sha: None,
    },
).await?;

println!("Created commit: {}", result.sha);