Commit graph

17 commits

Author SHA1 Message Date
Gabriel Simmer e1b8c50d55
Delete files and create directories.
Added DELETE handler to files endpoint for deleting files and
directories, along with new handling for creating directories, as
specified with the `X-NAS-Type` header - if this is set to "directory",
a new directory is created with the path of the request. Otherwise, an
attempt to parse the file from form data is done as before.

Also added buttons to interact with the new functionality in the default
frontend.
2020-04-12 22:10:51 +01:00
Gabriel Simmer 1ba1a14807
New file regex.
The old regex was hard to parse and maintain, and was broken for some
edge cases. Simplified it greatly and seems to work fine!
2020-04-11 22:43:03 +01:00
Gabriel Simmer 5e345f11af
Tweaked spacing for file list, icons.
Icons! Finally, signifying type of link without relying on colours. Also
added some margin to help alleviate strain from contrasting colours.
Fixed background-color of "NAS" home link maintaining white background.
2020-04-05 19:32:35 +01:00
Gabriel Simmer c183003953
Resolve upload logic for frontend.
Frontend logic for routing was a bit broken when generating links for
directories, appending an extra / to the start. Resolved this to
properly link - interestingly, the file listing could still be served,
but the uploading was broken?

Also enforced regex for provider of directory listings and tidied up
some other string handling.
2020-04-03 02:51:38 +01:00
Gabriel Simmer 641e015ca6
Simplify router, remove common and authentication.
Removed common package, since it was largely useless and instead
integrated what I could into the router package. Should simplify things
going forward, but we can always split this out later. Also completely
removed authentication for the time being - want to consider other
options for this.
2020-04-02 20:50:39 +01:00
Gabriel Simmer d86ed1233f
Implemented uploading for Backblaze & Disk (v1)
Implemented file uploading for both the disk and Backblaze providers.
Also implements a UI element and frontend logic for doing so from the
frontend.

Disk will write directly to disk, while the Backblaze provider will
attempt to stream the file from memory directly to the POST body. This
could introduce some problems down the line, so caching to disk then
uploading in the background may need to be implemented. It also
performs the final upload using a goroutine so the end client can
continue on it's merry way.

Backblaze proved a bit tricky to do, and considering switching to using
a library for managing Backblaze going forward.
2020-03-30 20:51:26 +01:00
Gabriel Simmer 292e24978d
Implement new frontend, "/" at end of provider.
Started work on a new basic frontend, with some magic code from
@tomhodgins (Tom Hodgins) for templating and processing data, which was
the primary purpose for considering a full-fledged JavaScript
framework. Fairly simple right now, with minimal "bling", and seems
"functional enough". Might need to consider options for using less or
no JS down the line if there is demand.

As part of this frontend, actually implemented route logic for fetching
a sorted list of providers (might be worth investigating whether
storing this final result in memory is worth the performance to memory
trade-off).

Also fixed a bug where adding "/" to the end of a provider name without
a file path would result in a 404. This was addressed with some Regex
filtering on the path that should be able to handle that matching.
2020-03-22 00:18:19 +00:00
Gabriel Simmer bf1f06b79c Refactoring file storage to enable different providers
Expanding this as we go, currently have POC Backblaze B2 support and
basic 'disk' provider as well. Still WIP, but functional for the most
part. Also moving to simplified YAML configuration.

Overall, simplifying things to be extensible down the line. Still work
to be done, but coming along nicely.
2020-02-24 18:07:47 +00:00
Gabriel Simmer 6524726357 Directory listing in new frontend 2019-07-27 21:43:05 -07:00
Gabriel Simmer 9ab5f248a9 Rewriting frontend in react, refactoring of routes. 2019-07-13 20:19:28 -07:00
Gabriel Simmer 88e0d6c7b1
Add disk usage statistics to index & API.
Update README.md

Add disk usage statistics to index & API.
2019-04-01 22:45:33 -07:00
Gabriel Simmer a2a1e0e573
Begin work on API, decouple frontend to be more dynamic. 2019-03-02 17:41:13 -08:00
Gabriel Simmer 23177b6b54
Implement basic file uploading ('hot' tier only) 2019-02-24 14:42:21 -08:00
Gabriel Simmer 68f313c879
More regex path improvements. 2019-02-24 11:51:36 -08:00
Gabriel Simmer da6bd94800
Fix regex for paths to match spaces. 2019-02-24 11:29:45 -08:00
Gabriel Simmer 4bd60c6c1d
Add basic styling to listing page, fix previous directory link. 2019-02-24 01:02:03 -08:00
Gabriel Simmer 7b091438d4
Initial commit of basic functional file listing 2019-02-24 00:25:39 -08:00