• Must support Chrome, Firefox and Edge
here is an example that works in all three browsers:
[login to view URL]
• Must allow selection of files as well as one or more folders
• Uploads files using my existing API. Already tested for 220,000 files with Windows app.
• Upload must be able to run for a very long time, so avoid memory leaks
• Must be able to upload 30,000 files and/or 15 GB of data in one session
• There is no design work in this task, just simply show some raw data in an HTML page before, during and after uploads.
1. Create simple HTML page with markup to drag’n’drop one or more folders into the browser window or select them using a file selection dialog.
You are allowed to use third party plugins like “dropzonejs”
a. X folders selected
b. X files selected
c. The first 20 files and folders can be shown on screen in just a simple list
3. Uploading files cannot happen all at once because of the high volume of files. So they need to be queued. Also, they cannot be in only one queue, because upload would be too slow. Please make it so up to 10 files are uploaded at the same time.
4. The upload path must be determined logically by combining the web path with the selected folder path.
The user is currently in [login to view URL]
The user selected a local folder with files called “/berlin/[login to view URL]”
The uploaded file path will be: “/vacations/germany/berlin/[login to view URL]”
5. Each upload consists of three actions
Call the API to get an upload link
GET /api/GetUploadLink?AccountName=developer&FileName=%2Fberlin%[login to view URL]
Upload by making a PUT call to that URL with the file content
Call another API method to indicate the upload was completed
POST /api/ProcessImage (Url in json)
6. Retry functionality: If there is any error in these API calls, do not move on to the next file. Instead retry every 10 seconds until it succeeds.
7. Show the files currently being uploaded in the HTML page and a status (such as "failed, trying again")
8. Show the latest 20 uploaded files in the HTML page