У меня есть представление django, которое загружает кучу файлов из корзины s3, а затем архивирует их вместе.Я хотел бы иметь возможность отправить этот tarballed файл на стороне клиента, а затем загрузить его на стороне клиента.
Я пытался открыть его с помощью большого двоичного объекта, но в файле tarball всегда говорится о фатальной ошибке, когда я пытаюсь открыть его.
Сторона Джанго
tar_name = "Inspection{}{}.tar.gz".format(inspection.id,first_file_name)
tar_path = "{}/{}".format(os.path.join(os.path.expanduser('~'), 'Downloads'), tar_name)
self.download_tar(files,tar_path)
tarred = tarfile.open(tar_path,'r:gz')
response = HttpResponse(tarred,content_type='application/x-gzip')
response['Content-Disposition'] = "attachment; filename={0}".format('test_worked.tar.gz')
response['Content-Encoding'] = 'tar'
return response
Сторона реакции.Мы используем программу с именем transcrypt, которая превращает python в реакцию.
def download(self,url):
data = __new__(Blob([url], {type: 'application/x-gzip'}))
csvURL = window.URL.createObjectURL(data)
tempLink = document.createElement('a')
tempLink.href = csvURL
tempLink.setAttribute('download', 'hello.tar')
tempLink.click()
Ожидаемый результат: Tarball загружается на стороне клиента.Фактический результат: Tarball загружен на стороне клиента, но не может быть открыт.Говорит An error occurred while loading the archive. Fatal Error