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:
- Computes SHA-256 of each file
- Requests pre-signed upload URLs from the LFS endpoint
- Uploads file content directly to S3
- 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);