S3 & URL

View Parquet files on S3 — without downloading them

Checking one Parquet file in a bucket should not require aws s3 cp, a notebook, or an Athena query. viewparquet points DuckDB-WASM straight at the object: paste a public HTTPS or presigned URL, an s3:// path, or connect a private bucket with access keys.

DuckDB reads only the byte ranges a query needs — footer first, then just the relevant columns and row groups — so a quick look at a multi-gigabyte remote file transfers megabytes, not gigabytes. Requests go directly from your browser to the bucket; credentials are stored in your browser and never pass through viewparquet servers. AWS S3, Cloudflare R2, Google Cloud Storage, and MinIO all work.

Query a Parquet file on S3

  1. Click "Open from S3 / URL"

    On the home page or inside the viewer. Public HTTPS links and presigned URLs need no credentials at all.

  2. Point at the object

    Paste the URL or s3:// path, or connect a private bucket with access keys or temporary STS tokens — they stay in your browser.

  3. Query and export

    Run DuckDB SQL against the remote file. Only the bytes your query touches are streamed. Export results to Parquet, CSV, or JSON locally.

Common questions

Can I view a Parquet file on S3 without downloading the whole file?

Yes. viewparquet uses DuckDB’s HTTP range reads: it fetches the Parquet footer first, then only the columns and row groups your query needs. Previewing or filtering a large remote file typically transfers a small fraction of its size.

How do I open a private S3 bucket safely in a browser viewer?

In viewparquet you connect with access keys or temporary STS tokens that are stored only in your browser. Requests go directly from the browser to S3 — credentials and data never pass through viewparquet’s servers. Presigned URLs are an alternative that requires no keys in the browser at all.

Which storage providers work besides AWS S3?

Any S3-compatible store: Cloudflare R2, Google Cloud Storage (via HMAC keys), and MinIO, plus plain HTTPS URLs and presigned URLs. Point the viewer at the endpoint and the same streaming reads apply.

Why does my bucket file fail to load in the browser?

The most common cause is CORS: browsers require the bucket to allow cross-origin GET and HEAD requests with Range headers. Add a CORS rule to the bucket (or use a presigned URL from a bucket that has one) and the file will stream. Expired presigned URLs and missing read permissions are the other usual suspects.

Do I still get privacy when reading from S3?

Yes — the data path is bucket to browser, with all SQL running locally in DuckDB-WASM. viewparquet’s servers never see your data or your credentials; the browser talks to the bucket directly.

Related

Try it on your own file

Drop a Parquet, GeoParquet, CSV, or JSON file into viewparquet — browse rows, run DuckDB SQL, and export results, all locally in your browser. Nothing is uploaded.