BlueForge Docs

client.storage.upload

Upload a file to a storage bucket.

Signature

class Client {
  storage: {
    upload(bucket: string, key: string, file: File | Blob | Buffer, opts?: {
      mimeType?: string
      autoTag?: boolean
      generateEmbedding?: boolean
    }): Promise<StorageUploadResult>
  }
}

Parameters

NameTypeRequiredNotes
bucket
stringyesBucket name
key
stringyesObject key (path within bucket)
file
File / Blob / BufferyesFile data
mimeType
stringnoOverride content type
autoTag
booleannoAuto-generate tags via AI
generateEmbedding
booleannoGenerate vector embedding for semantic search

Throws

ErrorCondition
NotFoundError
Bucket does not exist
AuthError
Invalid or expired API key
LimitError
File exceeds size limit (100 MB)

Examples

const result = await bf.storage.upload('assets', 'images/logo.png', file, {
  mimeType: 'image/png',
  autoTag: true,
})
console.log(`Uploaded ${result.size} bytes`)

Pitfalls

  • Size limit — 100 MB per upload; use multipart for larger files
  • Key uniqueness — uploading to the same key overwrites the existing object
  • Embedding cost
    generateEmbedding
    incurs AI processing time and cost

See also

{auto-injected}

Tested against

{auto-injected}