Sign inSign up

juffalow/upload-service

By juffalow

•Updated about 2 years ago

Store files easily with minimal configuration in supported public clouds or directly on disk.

Image
API management
Web servers
Databases & storage
0

768

juffalow/upload-service repository overview

⁠Upload Service

This project is Open Source and source code is available on GitHub⁠.

Read more about this projects here⁠

⁠Routes

RequestPathDescriptionDataResponse
POST/upload/fileUploads file
{
  "file": file
}
{
  "error": null,
  "data": {
    "file": {
      "id": number,
      "userId": number,
      "path": string,
      "mimetype": string,
      "metadata": {

      },
      "createdAt": "yyyy-MM-dd mm:HH:ss"
    }
  }
}
GET/upload/file:idReturns detail about file
{
  "error": null,
  "data": {
    "file": {
      "id": number,
      "userId": number,
      "path": string,
      "mimetype": string,
      "metadata": {

      },
      "createdAt": "yyyy-MM-dd mm:HH:ss"
    }
  }
}

⁠Configuration

⁠Port
PORT=3010
⁠Route prefix
ROUTE_PREFIX=/upload
⁠CORS Origins

Domain names separated by commas:

CORS_ORIGINS=
⁠Database
DATABASE_HOST=
DATABASE_NAME=
DATABASE_PASSWORD=
DATABASE_USER=
DATABASE_PORT=
⁠Logger

Supported values debug, info, warn, error:

LOGGER_LEVEL=
⁠Services
⁠Token

Access token is used to authorize user to do some actions or to pair newly uploaded files to a user.

JWT use JSON Web Token to authorize user requests:

SERVICES_TOKEN_TYPE=JWT
SERVICES_TOKEN_SECRET=
⁠Storage

DISK store all files on local disk.

SERVICES_STORAGE_TYPE=DISK
SERVICES_STORAGE_DISK_DIRECTORY=/home/juffuser/upload-service/public

S3 store all files in AWS S3⁠ bucket.

SERVICES_STORAGE_TYPE=S3
SERVICES_STORAGE_AWS_ACCESS_KEY_ID=
SERVICES_STORAGE_AWS_SECRET_ACCESS_KEY=
SERVICES_STORAGE_AWS_S3_REGION=
SERVICES_STORAGE_AWS_S3_BUCKET=
SERVICES_STORAGE_AWS_S3_ACL=
SERVICES_STORAGE_AWS_S3_SERVER_SIDE_ENCRYPTION=

SPACES store all files in DigitalOcean spaces⁠.

SERVICES_STORAGE_TYPE=SPACES
SERVICES_STORAGE_DO_ACCESS_KEY_ID=
SERVICES_STORAGE_DO_SECRET_ACCESS_KEY=
SERVICES_STORAGE_DO_SPACES_ENDPOINT=
SERVICES_STORAGE_DO_SPACES_BUCKET=
SERVICES_STORAGE_DO_SPACES_REGION=
SERVICES_STORAGE_DO_SPACES_ACL=
⁠Queue

AWS_SQS use AWS Simple Queue Service⁠ to exchange messages between upload service and its worker:

SERVICES_QUEUE_TYPE=AWS_SQS
⁠CDN

AWS_CF use AWS CloudFront:

SERVICES_CDN_TYPE=AWS_CF
SERVICES_CDN_AWS_CF_URL=

DO_CDN use DigitalOcean Spaces CDN:

SERVICES_CDN_TYPE=DO_CDN

SERVER use just this server:

SERVICES_CDN_TYPE=SERVER

ORIGINAL use original URL of the file:

SERVICES_CDN_TYPE=ORIGINAL

Tag summary

Content type

Image

Digest

sha256:5731b0d70…

Size

194.1 MB

Last updated

about 2 years ago

docker pull juffalow/upload-service