6184a70ba4
The upstream gcp aggressively closes the connection once it has received Content-Length bytes. However the @google-cloud/storage module doesn't handle this well and emits no event in this case. We were setting Content-Length because it's slightly more efficient and was important for our download progress bar (not anymore). The download should function fine without setting the Content-Length, and allows the storage stream to finish before closing the upstream socket. |
||
---|---|---|
.. | ||
middleware | ||
routes | ||
storage | ||
config.js | ||
dev.js | ||
layout.js | ||
log.js | ||
metadata.js | ||
prod.js | ||
readme.md | ||
state.js |
Server Code
The server provides the API, serves static assets, and renders the pages for Send. The production entrypoint is prod.js and the development entrypoint is dev.js via webpack-dev-server
.
Server configuration
config.js contains the schema for our configuration options. Environment variables are the preferred method for setting configuration.
Middleware
Contains authentication and localization middleware.
Routes
Contains all the server routes and handlers for the API and pages
Storage
Contains implementations of possible storage engines for the files and metadata