Downloads
The agent can download any MASV package providing that you have a valid download URL in the format https://get.massive.app/{ID}?secret={SECRET}
. For password-protected downloads, you also need to provide the password. The agent rebuilds the directory structure of the package as sent by the sender. Initiating and managing downloads does not require a user session.
Please note that special characters can cause issues in cross-platform downloads, so the MASV Agent removes any special characters from file names if they are not supported on the target platform.
Similar to uploads, downloads transition through different state throughout their lifecycle, with the exception that downloads do not go through an idle
state, but transition to complete
immediately once all data is transferred. Downloads can be in one of the following states:
transferring
: the download is currently transferring (downloading) data.paused
the download is paused by the user.complete
: the download has been completed.error
: a fatal error was encountered and the download had to stop. This might or might not be recoverable, depending on the type of error.
Download a package
To initiate a package download, simply supply the full download link URL to the agent along with a destination folder in your computer to store the downloaded files:
curl -X POST -H "Content-Type: application/json" http://localhost:8080/api/v1/downloads -d '{
"url":"https://get.massive.app/LINK_ID?secret=LINK_SECRET",
"dst_folder":"/destination/folder",
"password": "optional_password"
}'
Where:
url
is the full download link sent to you by the sender or obtained from the web UI.dst_folder
is the destination directory to download files into.password
is the download password, which is only required if the link was password-protected.
If successful, the agent will respond with a JSON object that indicates the newly created download_id
that can be used to query or modify the download state.
View download status
To list all downloads managed by the agent:
curl -X GET http://localhost:8080/api/v1/downloads
In order to view the full details for a specific download (including individual file states), use the following request:
curl -X GET http://localhost:8080/api/v1/downloads/{DOWNLOAD_ID}
Manage downloads
To pause a download, call:
curl -X POST -H "Content-Type: application/json" http://localhost:8080/api/v1/downloads/{DOWNLOAD_ID}/pause
To resume a download:
curl -X POST -H "Content-Type: application/json" http://localhost:8080/api/v1/downloads/{DOWNLOAD_ID}/resume
To delete a download, regardless of what state it was in:
curl -X DELETE http://localhost:8080/api/v1/downloads/{DOWNLOAD_ID}
Please note that deleting a download this way does not automatically delete the completed files from the file system. If you want to delete a download record and delete all files from the filesystem at the same time, you can do so by calling:
curl -X DELETE http://localhost:8080/api/v1/downloads/{DOWNLOAD_ID}?remove_files=true
To delete all downloads, regardless of state:
curl -X DELETE http://localhost:8080/api/v1/downloads
To delete all downloads of a particular state ("paused", "transferring", "complete", "error"), specify the states as a url parameter:
curl -X DELETE http://localhost:8080/api/v1/downloads?states=complete
The states value is a comma separated list, so users can delete downloads of multiple states with the same command:
curl -X DELETE http://localhost:8080/api/v1/downloads?states=complete,transferring
To additionally remove the downloaded files associated with the download, add the boolean url parameter remove_files
:
curl -X DELETE http://localhost:8080/api/v1/downloads?remove_files=true
Users can combine these two url parameters:
curl -X DELETE http://localhost:8080/api/v1/downloads?states=complete,transferring&remove_files=true