Попытка загрузить>3 ГБ файл через API, используя Python/Javascript/cURL
Я пытаюсь загрузить большие файлы (размером от 3 до 80 ГБ) через API ShareFile для хранения в локальном каталоге.
Я попытался использовать сценарий Python, JavaScript и cURL, и все они терпят неудачу в тот или иной момент с таймаутами.
Ниже приведен фрагмент кода Python, который я использую, он не всегда надежен, так как работал один день над файлом 3 ГБ, а затем уже не работал, когда в коде не было никаких изменений. Это просто вернет 504 таймаута. Нет никаких шансов, что он будет работать с файлом 10 ГБ или даже 80 ГБ. Я изучал способы загрузки больших файлов, но когда я искал, как загружать большие файлы с помощью API-вызова, то, что для других является большим, кажется MB, с которым у меня нет проблем.
Я также попытался загрузить диапазон байтов, но при попытке загрузить файл размером 12 ГБ, используя тот же код, который приведен ниже, истекло время ожидания, просто добавив дополнительный заголовок для Range.
def download_item(downloadUrl, token, local_path):
url = downloadUrl + '/Download'
headers = {'Authorization': 'Bearer ' + token, 'Accept-Encoding': 'gzip'}
response = requests.get(url = url, headers = headers, stream = True)
print(response.status_code)
with open(local_path, 'wb') as f:
print("Opened")
for chunk in response.iter_content(chunk_size=512):
f.write(chunk)
return print("File completed " + str(datetime.datetime.now()))
Я также попытался использовать cURL, который может сделать нужный мне файл 12 ГБ, но время ожидания увеличилось
Должен быть способ сделать это с очень большими файлами, но мои исследования не дали ничего полезного.