Bun.FileBlob TypeScript interface | API Reference | Bun
BuildDocsReferenceGuidesBlogDiscord/
Bun/
FileBlobMarrayBufferMbytesMdeleteMexistsMformDataMimageMjsonPlastModifiedPnamePsizeMsliceMstatMstreamMtextPtypeMunlinkMwriteMwriterSearch the reference...
/
BuildDocsReferenceGuidesBlogDiscord/
Bun/
FileBlobMarrayBufferMbytesMdeleteMexistsMformDataMimageMjsonPlastModifiedPnamePsizeMsliceMstatMstreamMtextPtypeMunlinkMwriteMwriterinterface
FileBlobinterface
FileBlobBlob powered by the fastest system calls available for operating on files.
This Blob is lazy. That means it won't do any work until you read from it.
size will not be valid until the contents of the file are read at least once.type is auto-set based on the file extension when possibleconst file = Bun.file("./hello.json");
console.log(file.type); // "application/json"
console.log(await file.text()); // '{"hello":"world"}'
lastModified: number
A UNIX timestamp indicating when the file was last modified.
readonly
name?: string
The name or path of the file, as specified in the constructor.
readonly
size: number
MDN Reference
readonly
type: string
MDN Reference
arrayBuffer(): Promise
ArrayBuffer>;
Returns a promise that resolves to the contents of the blob as an ArrayBuffer
bytes(): Promise
Uint8ArrayArrayBufferLike>>;
MDN Reference
bytes(): Promise
Uint8ArrayArrayBuffer>>;
Returns a promise that resolves to the contents of the blob as a Uint8Array (array of bytes) its the same as new Uint8Array(await blob.arrayBuffer())
delete(): Promisevoid>;
Deletes the file (same as unlink)
exists(): Promiseboolean>;
Does the file exist?
This returns true for regular files and FIFOs. It returns false for directories. Note that a race condition can occur where the file is deleted or renamed after this is called but before you open it.
This does a system call to check if the file exists, which can be slow.
If using this in an HTTP server, it's faster to instead use return new Response(Bun.file(path)) and then an error handler to handle exceptions.
Instead of checking for a file's existence and then performing the operation, it is faster to just perform the operation and handle the error.
For empty Blob, this always returns true.
formData(): Promise
FormData>;
Read the data from the blob as a FormData object.
This first decodes the data from UTF-8, then parses it as a multipart/form-data body or a application/x-www-form-urlencoded body.
The type property of the blob is used to determine the format of the body.
This is a non-standard addition to the Blob API, to make it conform more closely to the BodyMixin API.
image(options?:
ConstructorOptions):
Image;
Wrap this blob in a Bun.Image pipeline. Equivalent to new Bun.Image(this, options) — the constructor is synchronous (the underlying read happens lazily when an Image terminal is awaited), so this works on Bun.file(), Bun.s3(), fd-backed and in-memory blobs alike:
await Bun.file("photo.jpg").image().resize(400).webp().write("thumb.webp");
json(): Promiseany>;
Read the data from the blob as a JSON object.
This first decodes the data from UTF-8, then parses it as JSON.
0, () will be slower on macOS" data-algolia-static="false" data-algolia-merged="false" data-type="Method">
slice(begin?: number,end?: number,contentType?: string):
BunFile;
Offset any operation on the file starting at begin and ending at end. end is relative to 0
Similar to TypedArray.subarray. Does not copy the file, open the file, or modify the file.
If begin > 0, () will be slower on macOS
@param begin
start offset in bytes
@param end
absolute offset in bytes (relative to 0)
@param contentType
MIME type for the new BunFile
slice(begin?: number,contentType?: string):
BunFile;
Offset any operation on the file starting at begin
Similar to TypedArray.subarray. Does not copy the file, open the file, or modify the file.
If begin > 0, Bun.write() will be slower on macOS
@param begin
start offset in bytes
@param contentType
MIME type for the new BunFile
slice(contentType?: string):
BunFile;
Slice the file from the beginning to the end, optionally with a new MIME type.
@param contentType
MIME type for the new BunFile
stat(): Promise
Stats>;
Provides useful information about the file.
stream():
ReadableStreamUint8ArrayArrayBufferLike>>;
MDN Reference
stream():
ReadableStreamUint8ArrayArrayBuffer>>;
Returns a readable stream of the blob's contents
text(): Promisestring>;
Returns a promise that resolves to the contents of the blob as a string
unlink(): Promisevoid>;
Deletes the file.
write(data: string |
ArrayBuffer |
SharedArrayBuffer |
BunFile |
Request |
Response |
ArrayBufferViewArrayBufferLike>,options?: { highWaterMark: number }): Promisenumber>;
Write data to the file. This is equivalent to using Bun.write with a BunFile.
@param data
The data to write.
@param options
The options to use for the write.
writer(options?: { highWaterMark: number }):
FileSink;
Incremental writer for files and pipes.
Resources
ReferenceDocsGuidesDiscordMerch StoreGitHubBlog Toolkit
RuntimePackage managerTest runnerBundlerPackage runnerProject
Bun 1.0Bun 1.1Bun 1.2Bun 1.3RoadmapContributingLicenseBaked with ❤️ in San Francisco
We're hiring →