Table of Contents |
---|
For use cases see: Bulk File/Table Download via Web Client
...
Selection review
The user's goal for this phase this phase is to review and refine the files they selected prior to actually starting the before they start the actual download. This phase is similar to the review of a shopping cart/basket of an online shopping experience. All of the files the users selected in the file selection phase will be consolidated in the user's private download list. The download list will include the following information about each file:
...
The user's goal for this phase will be start proceed with the actual bulk file download of their files. This phase is similar to the checkout phase of the an online shopping experience. In this phase the user will provide a name for their zip file and will be presented with the sub-set of files that will actually be included in the download (unavailable files will be excluded). When the user chooses to proceed with the download, the download transaction order will be stared (see below for details on the download transaction)started (see Figure 1).
Figure 1. State transition from a download list to a final file download.
Download
...
transaction
When the user orders the download of their download list, a user starts a file download, they will enter the last phase: download review. In this phase the user will be able to monitor the download progress. After the requested zip file is prepared, the user will then be able to download the zip file to their machinedownload transaction will be started. The download transaction consists of the following operations:
- User's download list will be locked.
- All of the availability files will be moved from the user's download list to a newly created download record. Unavailable files will remain on the user's download list.
- Releases the lock on on the user's download list.
If any errors occur during this transaction all changes will be rolled back, restoring their download list to its starting state. The user will be blocked from making changes to their download list during the execution of the download transaction. Upon success, the user will be transition to the download review phase to review the newly created download order.
Download Review
The user's goal for the download review phase is to review their latest download order and actually download the a resulting file. This phase is similar to the review of an existing order from an online shopping experience. Figure 1. shows two start points, the first involves the creation of a new download order from the user's download list, and the second starts from an existing download order. In either case the user will be able to select an existing download orders to start the actual bulk file download job and ultimately download the file. Download orders are immutable and stateless. The user will be free to re-download any of their previous download orders from this phase.
Limitations
Managing file selection across a paginated list of results creates an awkward user experience. Therefore, the entire download list must be presented to the user without pagination (scrollbars are allowed). This means there must be a limit on the number of files allowed in the download list. The download list must be small enough to be fetched as a single web-service request. A download list will have a limit of 100 files.
...
To support adding all of the files in a folder (non-recursive) (use case 1a) we will need to return the total number of files in a folder and the total size of all files in the folder from POST/entity/children. The proposal is to add a 'partMask' (similar to QueryBundleRequest) with 0x01=count and 0x02=totalFileSizeMB.
Download Transaction
When a user chooses to to start the download process the following operations will occur in a transaction:
- User's download list will be locked.
- A download delivery will be created that includes all of the files from a user's download list excluding unmet access restrictions and non-downloadable files.
- An asynchronous download request job will be started for the download delivery created in step 2.
- All files in the download delivery will be removed from the user's download list.
- Releases the lock on on the users's download list.
If any errors occur during this transaction all changes will be rolled back. The user will be blocked from making changes to their download list during this transaction.