Update README.md
This commit is contained in:
parent
755e892e30
commit
cdafea14dc
104
README.md
104
README.md
|
@ -14,6 +14,11 @@ specifies a flexible method to upload files to remote servers using HTTP.
|
||||||
The special feature is the ability to pause and resume uploads at any
|
The special feature is the ability to pause and resume uploads at any
|
||||||
moment allowing to continue seamlessly after e.g. network interruptions.
|
moment allowing to continue seamlessly after e.g. network interruptions.
|
||||||
|
|
||||||
|
It is capable of accepting uploads with arbitrary sizes and storing them locally
|
||||||
|
on disk, on Google Cloud Storage or on AWS S3 (or any other S3-compatible
|
||||||
|
storage system). Due to its modularization and extensibility, support for
|
||||||
|
nearly any other cloud provider could easily be added to tusd.
|
||||||
|
|
||||||
**Protocol version:** 1.0.0
|
**Protocol version:** 1.0.0
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
@ -26,23 +31,102 @@ Windows in various formats of the
|
||||||
|
|
||||||
### Compile from source
|
### Compile from source
|
||||||
|
|
||||||
**Requirements:**
|
The only requirement for building tusd is [Go](http://golang.org/doc/install) 1.5 or newer.
|
||||||
|
If you meet this criteria, you can clone the git repository and build the binary:
|
||||||
* [Go](http://golang.org/doc/install) (1.5 or newer)
|
|
||||||
|
|
||||||
**Running tusd from source:**
|
|
||||||
|
|
||||||
Clone the git repository and `cd` into it.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone git@github.com:tus/tusd.git
|
git clone git@github.com:tus/tusd.git
|
||||||
cd tusd
|
cd tusd
|
||||||
|
go build -o tusd cmd/tusd/main
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you can run tusd:
|
## Running tusd
|
||||||
|
|
||||||
```bash
|
Start the tusd upload server is as simple as invoking a single command. For example, following
|
||||||
go run cmd/tusd/main.go
|
snippet demostrates how to start a tusd process which accepts tus uploads at
|
||||||
|
`http://localhost:1080/files/` and stores them locally in the `./data` directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ tusd -dir ./data
|
||||||
|
[tusd] Using './data' as directory storage.
|
||||||
|
[tusd] Using 0.00MB as maximum size.
|
||||||
|
[tusd] Using 0.0.0.0:1080 as address to listen.
|
||||||
|
[tusd] Using /files/ as the base path.
|
||||||
|
[tusd] Using /metrics as the metrics path.
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, if you want to store the uploads on an AWS S3 bucket, you only have to specify
|
||||||
|
the bucket and provide the corresponding access credentials and region information using
|
||||||
|
environment variables (if you want to use a S3-compatible store, use can use the `-s3-endpoint`
|
||||||
|
option):
|
||||||
|
|
||||||
|
```
|
||||||
|
$ export AWS_ACCESS_KEY_ID=xxxxx
|
||||||
|
$ export AWS_SECRET_ACCESS_KEY=xxxxx
|
||||||
|
$ export AWS_REGION=eu-west-1
|
||||||
|
$ tusd -s3-bucket my-test-bucket.com
|
||||||
|
[tusd] Using 's3://my-test-bucket.com' as S3 bucket for storage.
|
||||||
|
[tusd] Using 0.00MB as maximum size.
|
||||||
|
[tusd] Using 0.0.0.0:1080 as address to listen.
|
||||||
|
[tusd] Using /files/ as the base path.
|
||||||
|
[tusd] Using /metrics as the metrics path.
|
||||||
|
```
|
||||||
|
|
||||||
|
Furthermore, tusd also has support for storing uploads on Google Cloud Storage. In order to
|
||||||
|
enable this feature, supply the path to your account file containing the necessary credentials:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ export GCS_SERVICE_ACCOUNT_FILE=./account.json
|
||||||
|
$ tusd -gcs-bucket my-test-bucket.com
|
||||||
|
[tusd] Using 'gcs://my-test-bucket.com' as GCS bucket for storage.
|
||||||
|
[tusd] Using 0.00MB as maximum size.
|
||||||
|
[tusd] Using 0.0.0.0:1080 as address to listen.
|
||||||
|
[tusd] Using /files/ as the base path.
|
||||||
|
[tusd] Using /metrics as the metrics path.
|
||||||
|
```
|
||||||
|
|
||||||
|
Besides these simple examples, tusd can be easily configured using a variety of command line
|
||||||
|
options:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ tusd -help
|
||||||
|
Usage of tusd:
|
||||||
|
-base-path string
|
||||||
|
Basepath of the HTTP server (default "/files/")
|
||||||
|
-behind-proxy
|
||||||
|
Respect X-Forwarded-* and similar headers which may be set by proxies
|
||||||
|
-dir string
|
||||||
|
Directory to store uploads in (default "./data")
|
||||||
|
-expose-metrics
|
||||||
|
Expose metrics about tusd usage (default true)
|
||||||
|
-gcs-bucket string
|
||||||
|
Use Google Cloud Storage with this bucket as storage backend (requires the GCS_SERVICE_ACCOUNT_FILE environment variable to be set)
|
||||||
|
-hooks-dir string
|
||||||
|
Directory to search for available hooks scripts
|
||||||
|
-hooks-http string
|
||||||
|
An HTTP endpoint to which hook events will be sent to
|
||||||
|
-hooks-http-backoff int
|
||||||
|
Number of seconds to wait before retrying each retry (default 1)
|
||||||
|
-hooks-http-retry int
|
||||||
|
Number of times to retry on a 500 or network timeout (default 3)
|
||||||
|
-host string
|
||||||
|
Host to bind HTTP server to (default "0.0.0.0")
|
||||||
|
-max-size int
|
||||||
|
Maximum size of a single upload in bytes
|
||||||
|
-metrics-path string
|
||||||
|
Path under which the metrics endpoint will be accessible (default "/metrics")
|
||||||
|
-port string
|
||||||
|
Port to bind HTTP server to (default "1080")
|
||||||
|
-s3-bucket string
|
||||||
|
Use AWS S3 with this bucket as storage backend (requires the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION environment variables to be set)
|
||||||
|
-s3-endpoint string
|
||||||
|
Endpoint to use S3 compatible implementations like minio (requires s3-bucket to be pass)
|
||||||
|
-store-size int
|
||||||
|
Size of space allowed for storage
|
||||||
|
-timeout int
|
||||||
|
Read timeout for connections in milliseconds. A zero value means that reads will not timeout (default 30000)
|
||||||
|
-version
|
||||||
|
Print tusd version information
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using tusd manually
|
## Using tusd manually
|
||||||
|
|
Loading…
Reference in New Issue