Skip to content

DIverso-NSD/Filler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filler

Filler это сервис для загрузки файлов по HTTP. Сначала мы должны отправить POST запрос о том, что мы хотим начать загружать файл и передать имя файла и его итоговый размер. Это нужно для того, чтобы заранее знать, насколько большой будет файл, и предотвратить возможные ошибки. Далее уже с помощью PUT запросов мы должны отправить байты файлов, сопровождая их параметром last_byte. С помощью этого параметра контролируется то, что посылается корректный range байтов.

Example

import requests
import os

headers = {
    "Token": "xxx"
}

file = "NVR.zip"
file_size = os.stat(file).st_size

res = requests.post(
    "http://localhost:5500/files",
    json={"file_name": file, "file_size": file_size},
    headers=headers,
)

file_id = res.json()["file_id"]

last_byte = 0
with open(file, "rb") as f:
    chunk = f.read(5 * 1024 * 1024)  # 5 MB

    while len(chunk) > 0:
        last_byte += len(chunk)
        resp = requests.put(
            f"http://localhost:5500/files/{file_id}",
            headers=headers,
            files={"file_data": chunk},
            params={"last_byte": last_byte},
        )
        print(resp.json())
        chunk = f.read(5 * 1024 * 1024)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages