Downloading » History » Sprint/Milestone 2
jortel@redhat.com, 08/29/2017 03:33 PM
1 | 1 | jortel@redhat.com | # Downloading |
---|---|---|---|
2 | |||
3 | ## Use Cases |
||
4 | |||
5 | 2 | jortel@redhat.com | ### Importer |
6 | |||
7 | 1 | jortel@redhat.com | As an importer, I need to download single files. |
8 | As an importer, I need to download files concurrently. |
||
9 | As an importer, I want to validate downloaded files. |
||
10 | As an importer, I am not required to keep all content (units) and artifacts in memory to support concurrent downloading. |
||
11 | As an importer, I need a way to link a downloaded file to an artifact without keeping all content units and artifacts in memory. |
||
12 | As an importer, I can perform concurrent downloading using a synchronous pattern. |
||
13 | As an importer, concurrent downloads must share resources such as sessions,connection pools and auth tokens across individual downloads. |
||
14 | As an importer I can customize how downloading is performed. For example, to support mirror lists |
||
15 | As an importer, concurrent downloading must limit the number of simultaneous connections. Downloading 5k artifacts cannot open 5k connections. |
||
16 | As an importer, I can terminate concurrent downlading at any point and not leak resources. |
||
17 | As an importer, I can download using any protocol. Starting with HTTP/HTTPS and FTP. |
||
18 | |||
19 | 2 | jortel@redhat.com | ### Streamer |
20 | 1 | jortel@redhat.com | |
21 | As the streamer, I need to download files related to published metadata but delegate *the implementation* (protocol, settings, credentials) to the importer. The implementation must be a black-box. |
||
22 | As the streamer, I can download using any protocol supported by the importer. |
||
23 | As the streamer, I want to validate downloaded files. |
||
24 | As the streamer, concurrent downloads must share resources such as sessions,connection pools and auth tokens across individual downloads without having knowledge of such things. |
||
25 | As the streamer, I need to support complex downloading such as mirror lists. This complexity must be delegated to the importer. |
||
26 | As the streamer, I need to bridge the downloaded bit stream to the Twisted response. The file is not written to disk. |
||
27 | As the streamer, I need to forward HTTP headers from the download response to the twisted response. |
||
28 | As the streamer, I can download using (the same) custom logic as the importer such as supporting mirror lists |