Skip to content

File Previews ​

BDrive previews many file types directly in the browser, so you can check what a file contains without downloading it. Click a file in the browser to open the preview modal; the arrows in its header move between previewable files in the same folder.

Supported formats ​

TypeExtensionsNotes
Imagesjpg, jpeg, png, gif, webpScaled to fit
PhotoshoppsdLayer toggling — see below
PDFpdf
Officedoc, docx, ppt, pptx, xls, xlsxRendered by an external viewer
Videomp4, mkv, mov, webm, avi, flv, wmv, m3u8Streamed with range requests
Audiomp3, m4a, aac, wav, ogg, oga, opus, flac
Code & textc, cpp, cs, css, diff, html, java, js, jsx, json, log, py, rs, sh, srt, toml, ts, tsx, txt, vtt, vue, yaml, ymlSyntax highlighted
E-booksepub
Apple WalletpkpassRendered the way Wallet does
3D Modelsfbx, gltf, glb, obj, stl, ply, daeInteractive three.js viewer — see below
ComicscbzComic reader with ComicInfo.xml metadata
Unity packagesunitypackageVirtual folder browsing with asset extraction

Photoshop files ​

A .psd opens showing the flattened image Photoshop saves alongside the layer data, so the preview appears without waiting for every layer to be decoded.

Toggling layers ​

The layers button in the bottom-right corner opens a layer list. Each row has an eye toggle that shows or hides that layer, and the image re-composites as you click. Groups can be expanded and collapsed, and hiding a group hides everything inside it.

Hiding a group does not change the individual layers within it — unhide the group and each child returns to the state it had before. Reset returns every layer to the visibility it had when the file was saved.

Layer data is only decoded when you first open the panel, so files you just want to look at never pay for it.

What is and isn't reproduced ​

The preview is a faithful approximation, not a Photoshop-accurate render. It honours layer groups, per-layer opacity, layer masks, and clipping layers, along with the blend modes a browser can express: Normal, Multiply, Screen, Overlay, Darken, Lighten, Color Burn, Color Dodge, Soft Light, Hard Light, Difference, Exclusion, Hue, Saturation, Color, and Luminosity.

These are drawn as Normal instead, and the layers panel marks each affected layer: Linear Burn, Linear Dodge (Add), Vivid Light, Linear Light, Pin Light, Hard Mix, Subtract, Divide, Darker Color, Lighter Color, and Dissolve.

Layer effects (drop shadows, strokes, glows), vector masks, and adjustment layers are not rendered. Groups are always composited in isolation, so a layer inside a group blends against the group rather than the image behind it.

Limits ​

Photoshop files can be very large, so previewing is capped to keep a browser tab responsive:

LimitValueEffect when exceeded
File size256 MBNo preview; download the file instead
Document size64 megapixels (about 8000 × 8000)No preview
Layer count250Preview works, layer toggling is disabled
Decoded layer data192 MBPreview works, layer toggling is disabled

When layer toggling is unavailable the button is disabled and the reason names the actual numbers for that file. On devices reporting 4 GB of memory or less, the layer limits are halved.

Files saved without Photoshop's Maximize Compatibility option carry no flattened image. Those are rebuilt from their layers automatically, which takes a moment longer. If such a file is also past the layer limits, it can't be previewed at all.

.psb (Large Document Format) files are not supported.

3D Models ​

Clicking a 3D model file opens an interactive viewer built on three.js. The model loads into a scene with orbit, zoom, and pan controls.

Supported formats ​

fbx, gltf, glb, obj, stl, ply, dae (Collada).

Viewer controls ​

The toolbar above the viewport offers:

ControlDescription
Lit / Unlit / WireframeSwitch between standard lighting, flat unlit, or wireframe rendering
Dark / Light / AlphaChange the background colour, or set it transparent
Light sliderAdjust lighting intensity from 0 to 3
RotateToggle automatic turntable rotation
ResetReturn the camera to its initial framing
FullscreenToggle the viewer to fill the screen

An info bar below the viewport always shows vertex count, face count, and bounding-box dimensions.

The model is auto-framed on load so it fits comfortably in the viewport, and a grid floor is scaled to the model's size for spatial reference.

Archive browsing configuration ​

Archive browsing (zip, CBZ, and Unity packages) is controlled by a master switch and per-format flags:

Config keyDefaultDescription
files.enable-archive-browsingtrueMaster switch for all archive browsing. When false, all archive endpoints return 403 regardless of per-format flags.
files.enable-zip-browsingfalseEnable zip virtual folder browsing
files.enable-cbz-browsingtrueEnable CBZ comic reader
files.enable-unitypkg-browsingtrueEnable Unity package browsing

Each format requires both the master switch and its own flag to be enabled. Zip browsing defaults to off because processing arbitrary zip archives is heavier than the purpose-built CBZ and Unity package parsers.

Zip files ​

Zip archives open as virtual folders in the file browser. Click a .zip file to navigate into it as if it were a directory - the same file browser UI shows the archive's contents, complete with folders you can click into.

How it works ​

The server reads the zip's central directory without extracting the full archive, then serves file listings at each depth. Individual files inside the zip can be previewed or downloaded: images, PSD files, 3D models, and all other supported formats work exactly as they would outside the archive.

Limits ​

LimitValue
Maximum zip size500 MB

Zip files larger than 500 MB are available for download but cannot be browsed.

Comic books (CBZ) ​

.cbz files open in a dedicated comic book reader. The reader displays pages in reading order with keyboard navigation, and shows metadata from the embedded ComicInfo.xml file when one is present.

Reading controls ​

KeyAction
Arrow Right / SpaceNext page
Arrow LeftPrevious page
HomeFirst page
EndLast page

For manga (right-to-left reading direction), the arrow keys are reversed.

ComicInfo.xml metadata ​

The info button in the reader's bottom bar opens a metadata panel showing fields from the ComicInfo.xml schema (v2.0 and v2.1 draft): title, series, creators, publisher, date, genre, tags, age rating, language, and more. CBZ files without a ComicInfo.xml still work - the info button is simply hidden.

API endpoints ​

EndpointDescription
GET /files/cbz/{id}/list?path=Browse archive contents
GET /files/cbz/{id}/file?path=Extract a single file
GET /files/cbz/{id}/metadataParsed ComicInfo.xml + page count
GET /files/cbz/{id}/coverFirst image as a cover thumbnail

Limits ​

LimitValue
Maximum CBZ size500 MB

CBZ files larger than 500 MB are available for download but cannot be browsed.

Unity packages ​

.unitypackage files open as virtual folders, the same way zip files do. The server parses the package's internal tar.gz structure and reconstructs the original file tree from Unity's GUID-based layout, so you see human-readable paths like Assets/Textures/wood.png instead of raw GUIDs.

Double-click a .unitypackage to browse it. Individual assets can be previewed (images, 3D models, etc.) or downloaded using the same viewers available elsewhere in the file browser.

How it works ​

A Unity package is a gzipped tar archive. Each asset lives under a GUID-named folder containing a pathname file (the real path), an asset file (the payload), and optionally asset.meta. The server reads these entries and serves a reconstructed directory listing.

Limits ​

LimitValue
Maximum package size500 MB

Packages larger than 500 MB are available for download but cannot be browsed.

Released under the MIT License.