[BREAKGLASS] An implementation of the TUS server protocol for resumable uploads
Go to file
2024-11-06 13:40:04 -06:00
.github/workflows Update actions/checkout and actions/setup-node to the latest versions 2024-02-29 16:49:15 -06:00
e2e Switch to vitest-pool-workers 2024-06-06 14:34:39 -05:00
src Rethrow unexpected excpetions 2024-06-07 15:13:20 -05:00
.eslintrc.json Squahsed history 2023-07-20 16:24:41 -05:00
.gitignore Squahsed history 2023-07-20 16:24:41 -05:00
.nvmrc update node version 2024-01-31 10:16:14 -06:00
LICENSE Squahsed history 2023-07-20 16:24:41 -05:00
package-lock.json update package version to 0.5.2 2024-11-06 13:40:04 -06:00
package.json update package version to 0.5.2 2024-11-06 13:40:04 -06:00
README.md Switch to vitest-pool-workers 2024-06-06 14:34:39 -05:00
tsconfig.json Switch to vitest-pool-workers 2024-06-06 14:34:39 -05:00
vitest.workspace.ts Switch to vitest-pool-workers 2024-06-06 14:34:39 -05:00
wrangler.toml Add new DO class to v2 migration 2023-10-02 17:47:51 -05:00

Overview

tus-server provides an implementation of the TUS protocol for resumable uploads built on cloudflare workers and R2.

Building

You'll need Node.js. If you use nvm run

nvm use

To install dependencies,

npm install

In order to deploy to cloudflare or use non-local dev mode, use the wrangler utility. Follow those instructions to authenticate with your cloudflare account.

Testing

The server assumes an authentication is provided via a signature using a shared secret. You can provide one for development by setting SHARED_AUTH_SECRET in .dev.vars, e.g.

> cat .dev.vars
SHARED_AUTH_SECRET = "test"

To run a dev server you can interact with over localhost

wrangler dev

To run unit tests,

npm test

Deploying

One time setup

  1. Create an R2 bucket and update the binding in wrangler.toml
  2. Add a base64 encoded shared auth secret with wrangler secret put SHARED_AUTH_SECRET
wrangler deploy -e <staging|production>

License

Copyright 2023 Signal Messenger, LLC

Licensed under the AGPLv3