r2
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
Simple file server providing REST APIs to access remote file system.
git clone https://github.com/jveverka/file-server.gitjveverka/file-serverThis FileServer makes specified base directory accessible via REST APIs allowing you to list, download, upload, move and delete files and create empty directories. It also provides user access control and security.
FileServer may be configured in several distinct ways. Check configurations examples chapter for more examples.
All REST endpoints use 'dynamic' path. This means that path ** is used as relative path in base directory.
See also postman collection example.
curl -X GET http://localhost:8888/services/files/list/ -b /tmp/cookies.txtcurl -X GET http://localhost:8888/services/files/download/path/to/001-data.txt -b /tmp/cookies.txtcurl -F 'file=@/local/path/to/file.txt' http://localhost:8888/services/files/upload/path/to/001-data.txt -b /tmp/cookies.txtcurl -X DELETE http://localhost:8888/services/files/delete/path/to/001-data.txt -b /tmp/cookies.txtcurl -X POST http://localhost:8888/services/files/createdir/path/to/directory -b /tmp/cookies.txtcurl -X POST http://localhost:8888/services/files/move/path/to/source -b /tmp/cookies.txt -d '{ "destinationPath": "path/to/destination" }''curl -X GET http://localhost:8888/services/files/audit/path/to/source -b /tmp/cookies.txtIn order to use file server REST endpoints above, user's http session must be authorized. Users have defined their roles and access rights to files and directories. See this example of server configuration.
curl -X POST http://localhost:8888/services/auth/login -H "Content-Type: application/json" -d '{ "userName": "master", "password": "secret" }' -c /tmp/cookies.txtcurl -X GET http://localhost:8888/services/auth/logout -b /tmp/cookies.txtSelected role fileserver.admin.role is used for admin access. Users with this role have access to special dedicated REST endpoints.
See this example of server configuration.
Refer to attached postman collection for all admin APIs.
docker run -d --name file-server-1.3.0 \
--restart unless-stopped \
-e SERVER_PORT=8888 \
-p 8888:8888 jurajveverka/file-server:1.3.0
application.yml is located at ${FS_CONFIG_DIR}/application.yml
and fileserver.home points to /opt/data/files
docker run -d --name file-server-1.3.0 \
--restart unless-stopped \
-e SERVER_PORT=8888 \
-e APP_CONFIG_PATH=/opt/data/config/application.yml \
-v '${FS_CONFIG_DIR}':/opt/data/config \
-v '${FS_FILES_DIR}':/opt/data/files \
-p 8888:8888 jurajveverka/file-server:1.3.0
Variable fileserver.home in application.yml file defines base directory to be exposed via REST APIs.
gradle clean build test
java -jar build/libs/file-server-1.3.0-SNAPSHOT.jar --spring.config.location=file:./src/main/resources/application.yml
more like this
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
meine 🌒 - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich t…
MTT File Manager is a Rust-based Windows file manager with tabbed navigation, rich media previews, deep system integrat…
search projects, people, and tags