manmolecular / cloud-downloader

:rocket: Download files directly into the cloud with a list of URLs (Distributed RabbitMQ Workers, PostgreSQL, Tornado Web Server)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Переделать формат ответа по /api/list

manmolecular opened this issue · comments

Эта issue зависит от #13
Так что сначала #13

Сейчас у нас отображаются и файлы, и ссылки по которым они были загружены - проблема в том, что эти файлы и ссылки разрознены. Вместо двух листов-словарей нужно отображать лист словарей, где будет маппинг

{
    "file": "test.jpg",
    "url": "www.example.com/files/test.jpg"
}

Это необходимо, чтобы понимать, откуда конечный файл к нам попал в принципе.

Проще всего это реализовать с учетом базы данных - т.е. если при закачке имя файла + его URL будут сразу попадать в БД под UUID-ом таска, их потом будет очень легко достать простым селектом (ну, у нас с тобой ОРМка, так что ещё проще).

Наглядный пример - как сейчас:

{
    "cd39ea71-657f-4629-bc7c-3d43402132a5": {
        "status": "in progress",
        "files": [
            "file_example_JPG_100kB.jpg",
            "zip_10MB.zip",
            "zip_5MB.zip",
            "zip_2MB.zip",
            "file_example_JPG_2500kB.jpg",
            "file_example_MP3_700KB.mp3",
            "file_example_MP3_5MG.mp3",
            "file_example_MP3_1MG.mp3",
            "file_example_JPG_500kB.jpg",
            "zip_9MB.zip",
            "file_example_MP3_2MG.mp3",
            "file_example_JPG_1MB.jpg"
        ],
        "urls": [
            "https://file-examples.com/wp-content/uploads/2017/10/file_example_JPG_100kB.jpg",
            "https://file-examples.com/wp-content/uploads/2017/10/file_example_JPG_500kB.jpg",
            "https://file-examples.com/wp-content/uploads/2017/10/file_example_JPG_1MB.jpg",
            "https://file-examples.com/wp-content/uploads/2017/10/file_example_JPG_2500kB.jpg",
            "https://file-examples.com/wp-content/uploads/2017/02/zip_2MB.zip",
            "https://file-examples.com/wp-content/uploads/2017/02/zip_5MB.zip",
            "https://file-examples.com/wp-content/uploads/2017/02/zip_9MB.zip",
            "https://file-examples.com/wp-content/uploads/2017/02/zip_10MB.zip",
            "https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_5MG.mp3",
            "https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_2MG.mp3",
            "https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_1MG.mp3",
            "https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3"
        ]
    }
}

Как надо:

{
    "cd39ea71-657f-4629-bc7c-3d43402132a5": {
        "status": "in progress",
        "files": [
            {
                "filename": "example.jpg",
                "url": "www.example.com/files/example.jpg" 
            },
            {
                "filename": "test.mp3",
                "url": "www.test.com/files/test.mp3" 
            },
        ],