Usage#
This section describes how to use the program.
Server#
After issuing the docker-compose up -d
command, the MySQL Database should start in about 30 Seconds, but the
API might take about a minute or two.
Afterwards, you can test the API by issuing the command curl -X GET http://(server):2356/(token)/
, replacing
server
with the server's domain/ip and token
with a random string. It should return false
, as there's no
UUID registered (but if you used a registered token, it'll return True)
All the Server Interaction is done through the client, so there's no need to use curl
or wget
to
send requests to the server again.
Client#
This guide assumes that you've performed all the actions mentioned in the installation page.
First Time Setup#
Upon first launch, you'll see a window called credentials.
If it's your absolute first time setting up the client; Enter the link
into the link field and hit
register. If the link is valid, the token
field should be filled with a random token. and a Key will be generated for you
Otherwise, just enter the link into the link
field and your token into the token
and a key into the key
field.
If it's not your first time, you can also import the credentials from your previous configuration file with the import button.
In the directories tab, set the Downloaded Files Directory and the Temporary Directory to the absolute paths of the directories you want to use.
In the advanced features section, input the maximum number of concurrent uploads and downloads that can take place parallely. I've found that 4 is the perfect balance for me, but you can change it. I've limited the numbers to 10, for obvious reasons, but you can always override it by editing the JSON file manually.
Finally, click 'Save and Connect'. If the connection succeeds, you will be transferred to the Main UI. Then, you can refer to the following section.
The Main Program#
Credentials Window#
You will get this screen if;
- It's the first time launching the program.
- The connection to the server failed.
- The token is invalid.
- You pressed 'credentials'
In the first tab (labeled "Credentials"), you'll see 3 Input fields;
Element | Type | Function |
---|---|---|
Token | Entry | This is the unique username you use to connect to the server |
Link | Entry | This is the link to the server |
Key | Entry | This is your AES key, You can either generate it by hitting 'Register' or entering a 256 Bit String |
In the second tab (labeled "Directories"), you'll see two Input Fields;
Element | Type | Function |
---|---|---|
Downloaded Files Folder | Entry | This is the directory that all the files you download get saved at |
Temp Folder | Entry | This is the directory that the temporary files are stored (and deleted) |
In the third tab (labeled "Advanced Features"), you'll see 2 Number Input Boxes (SpinBoxes);
Element | Type | Function |
---|---|---|
Concurrent Downloads | SpinBox | The maximum amount of download threads to run in parallel |
Concurrent Uploads | SpinBox | The maximum amount of upload threads to run in parallel |
In the second container (labeled "Status"), you'll see a Label;
Element | Type | Function |
---|---|---|
Status | Label | This invisible label will display the status; Such as connection errors and all |
In the last container (labeled "Operations"), you'll see 4 Buttons;
Element | Type | Function |
---|---|---|
Register | Button | If the link isn't empty, this will try and connect to the server and register you |
Import Settings | Button | This will import your settings from a JSON file |
Export Settings | Button | This will export your settings to a JSON file |
Save and Connect | Button | This will overwrite the options in 'credentials/config.json' with the new credentials you entered and connect to the server |
Main Window#
In the left-most container (labeled "Status"), there are 2 more containers and 1 label:
Element | Type | Function |
---|---|---|
Uploading Files | ListWidget | This will display the files that are currently uploading |
Status | Label | This invisible status will make itself visible and show statuses such as connection errors |
Downloading Files | ListWidget | This will display the files that are currently downloading |
In the top-right container (labeled "Files"), there's a TreeWidget:
Element | Type | Function |
---|---|---|
Files | Tree Widget | Displays the files with a checkbox to the left of them (see below) |
In the bottom container (labeled "Operations"), there are 5 Buttons:
Element | Type | Function |
---|---|---|
Download Selected | Button | Downloads the files you selected |
Delete Selected | Button | Deletes the files you selected |
Refresh | Button | Refreshes the file list |
Upload File | Button | This opens a file dialog for you to select as many files as you'd like |
Credentials | Button | This opens the credentials window |