невозможно правильно загрузить zip-файл с помощью модуля request / https node js - PullRequest
0 голосов
/ 09 июля 2020

Я в безумстве от того, что делаю неправильно. Мы будем очень благодарны за любые указатели ... Мой код ... ..

    var username = <username>,
    password = <password>,
    dest = <target folder>
    url = "<a https url>/file.zip",
    file_url = "https://" + username + ":" + password + "@<url from above>";//Basic auth


  /* Create an empty file where we can save data */

  const fs = require( 'fs' );
const request = require( 'request' );
const progress = require( 'request-progress' );
const pre = '----';
const downloadManager = function ( url, filename ) {
    progress( request( url ), {
        throttle: 500
    } ).on( 'progress', function ( state ) {
        process.stdout.write( pre + '' + ( Math.round( state.percent * 100 ) ) + "%" );
    } ).on( 'error', function ( err ) {
        console.log( 'error :( ' + err );
    } ).on( 'end', function () {
        console.log( pre + '100% \n Download Completed' );
    } ).pipe( fs.createWriteStream( filename ) );
}
downloadManager( file_url, dest );

И он отлично его загружает ... node callapi. js ---- 21% ---- 100 % Загрузка завершена.

////// ****

Тот же URL-адрес, если я попробую использовать python:

import requests

url='url'
user='<username>,
passw=<password>,
headers = {'Content-type': 'application/zip'}
aresp = requests.get(url, auth=(user, passw),headers=headers)
import zipfile, io
save_path = <target folder>
handle = open(save_path, "wb")
for chunk in aresp.iter_content(chunk_size=512):
    if chunk:  # filter out keep-alive new chunks
        handle.write(chunk)
handle.close()

/ **** Работает нормально в python и создает zip-файл, который при нажатии открывается, чтобы показать все файлы в нем ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...