IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres langages pour le Web Discussion :

cURL avec Hubic


Sujet :

Autres langages pour le Web

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut cURL avec Hubic
    Bonjour,

    je suis entrain d'écrire un script bash (j'espère être dans la bonne section) pour downloader et uploader des fichier sur mon compte hubic depuis mon VPS.

    J'ai réussi à sauvegarder un cookie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl --cookie $HOME/c_hubic --cookie-jar $HOME/c_hubic --data "sign-in-email=$login&sign-in-password=$password&action=&offer=" https://hubic.com/home/logcheck.php -v --user-agent "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0"
    J'arrive à télécharger un fichier en récupérant une donnée vie LiveHTTP de Firefox :
    https://hubic.com/home/browser/download/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    POST /home/browser/download/ HTTP/1.1
    Host: hubic.com
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: https://hubic.com/home/browser/
    Cookie: _pk_id.21.5aa0=8d461e8ae8f1ce6d.1401223401.4.1401350467.1401348022.; in=true; bb_lastvisit=1401225814; bb_lastactivity=0; hubic.com=R3691269564; HUBIC=9kvchfbc0bldl6tvsibqg086m2; _pk_ses.21.5aa0=*
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 74
    dlName=nomepisodes.ods&files=%255B%2522default%2Fnomepisodes.ods%2522%255D
    Pour cela j'utilise mon script de la façon suivante : hubic.sh -d "dlName=nomepisodes.ods&files=%255B%2522default%2Fnomepisodes.ods%2522%255D"
    Le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -d)
    nom=$(echo "$2"|cut -d "&" -f1|cut -d "=" -f2)
    
    echo $nom
    
    curl --cookie $HOME/c_hubic --data "$2" https://hubic.com/home/browser/download/ --user-agent "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0" -C - -o $nom
    Jusque là tout va .....

    Le problème va se corser avec la fonction UPLOAD ainsi que les options que propose CURL

    J'ai donc d'abord fait une analyse via LiveHTTP

    Il y a d'bord une première requête :
    https://hubic.com/home/browser/prepareUpload/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    POST /home/browser/prepareUpload/ HTTP/1.1
    Host: hubic.com
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0
    Accept: application/json, text/javascript, */*; q=0.01
    Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    X-Requested-With: XMLHttpRequest
    Referer: https://hubic.com/home/browser/
    Content-Length: 100
    Cookie: _pk_id.21.5aa0=8d461e8ae8f1ce6d.1401223401.4.1401350467.1401348022.; in=true; bb_lastvisit=1401225814; bb_lastactivity=0; hubic.com=R3691269564; HUBIC=9kvchfbc0bldl6tvsibqg086m2; _pk_ses.21.5aa0=*
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    max_file_size=14157&max_file_count=1&expires=1401351367776&path=/default/&redirect=&name=exemple.zip
    Cela donne dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    fullfile=$(echo "$2") # la syntaxe est hubic.sh -u exemple.zip
    destination='/new/' # ici c le répertoire à la racine d'Hubic
    
    echo "generating file metadata..."
    # Thanx to http://root.suumitsu.eu/wiki/doku.ph...h:hubic-upload
    file=$(basename "$fullfile")
    filesize=$(stat -c%s "$fullfile")
    filesize_human=$(stat -c%s "$fullfile")
    filetype=$(file --mime-type "$fullfile" | awk -F' ' '{print $2}')
    filemtime=$(stat -c %Y "$fullfile")
    filedate=$(date -u --rfc-3339=seconds --date="@$filemtime" | awk -F'+' '{print $1}' 
    | tr " " T)
    
    # récupération des infos sur le fichier pris du script http://root.suumitsu.eu/wiki/doku.ph...h:hubic-upload
    
    echo "#### summary ####"
    echo "file: $file"
    echo "filepath: $fullfile"
    echo "filesize: $filesize"
    echo "filetype: $filetype"
    echo "file mod date: $filedate"
    echo "destination: $destination"
    echo "#### end summary ####"
    
    prepare="max_file_size=$filesize&max_file_count=1&expires=$(date +%s)$[$RANDOM %999]&path=/default&redirect=&name=$file"
    
    echo $prepare
    
    curl -sq --cookie "$HOME/c_hubic" --data "$prepare" https://hubic.com/home/browser/prepareUpload/ > okprepare
    cela va générer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -sq --cookie /root/c_hubic --data "max_file_size=14157&max_file_count=1&expires=1401351834907&path=/default&redirect=&name=exemple.zip" https://hubic.com/home/browser/prepareUpload/
    et sauvegarder le résultat dans le fichier okprepare qui se présente sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"answer":{"status":200,"hubic":{"signature":"17f7f8778f9a5f200f4962c81f242ae6364a8a5f","url":"https:\/\/lb1.hubic.ovh.net\/v1\/AUTH_c844b4623a316d1155aa15096642847c","redirect":"","max_file_size":"14157","max_file_count":"1","expires":"1401351834907"}},"version":"1.0","error":null,"id":0}
    j'utilise grep et sed pour creer mes variables $signature $url $redirect $max_file_size $max_file_count et $expires

    Ensuite je regarde avec LiveHTTP la suite et je vois ça :

    https://lb1.hubic.ovh.net/v1/AUTH_c8...2847c/default/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    POST /v1/AUTH_c844b4623a316d1155aa15096642847c/default/ HTTP/1.1
    Host: lb1.hubic.ovh.net
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Referer: https://hubic.com/home/browser/
    Content-Length: 15139
    Content-Type: multipart/form-data; boundary=---------------------------93198771310375276991714696608
    Origin: https://hubic.com
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="max_file_size"
    
    14157
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="max_file_count"
    
    1
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="expires"
    
    1401351367776
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="redirect"
    
    
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="signature"
    
    08957962e909d86bc73b52194b14d9832bbc259d
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="name"
    
    exemple.zip
    -----------------------------93198771310375276991714696608
    Content-Disposition: form-data; name="file1"; filename="exemple.zip"
    Content-Type: application/zip
    
    PK
    HTTP/1.1 201 Created
    Content-Length: 0
    Access-Control-Expose-Headers: cache-control, content-language, content-type, expires, last-modified, pragma, etag, x-timestamp, x-trans-id
    Last-Modified: Thu, 29 May 2014 08:16:46 GMT
    Etag: c14565ed80133052a2715688d7e2852f
    Access-Control-Allow-Origin: https://hubic.com
    Content-Type: text/html; charset=UTF-8
    X-Trans-Id: tx2f37f30e2af74f659368d3089b685029
    Date: Thu, 29 May 2014 08:16:47 GMT
    Connection: keep-alive
    ----------------------------------------------------------
    donc au niveau des commandes CURL j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    curl --cookie $HOME/c_hubic \
    -F max_file_size="$max_file_size" \
    -F max_file_count='1' \
    -F expires="$expires" \
    -F redirect='' \
    -F signature="$signature" \
    -F "name=file1;filename=$(basename $2)" \
    -ksO  $url/default/
    
    curl --cookie /root/c_hubic -F max_file_size=14157 -F max_file_count=1 -F expires=1 -F redirect= -F signature=f72e827554f6a621e3e554a658d1935f2c552263 -F name=file1;filename=exemple.zip -ksO https://lb1.hubic.ovh.net/v1/AUTH_c8...2847c/default/
    mais sans succès.

    J'essaie surtout de comprendre comment passer de l'analyse de LiveHTTP vers CURL.

    Merci de vos éclaircissement

    Cordialement,

  2. #2
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    avril 2006
    Messages
    889
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : avril 2006
    Messages : 889
    Points : 1 288
    Points
    1 288
    Par défaut
    flag

Discussions similaires

  1. [Batch] problème de fonctionnement de cURL avec certain site.
    Par morphtry dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 08/03/2015, 20h54
  2. [PHP 5.3] ftp curl avec gros fichier
    Par gtraxx dans le forum Langage
    Réponses: 13
    Dernier message: 10/05/2012, 10h34
  3. Requete cURL avec login
    Par kanak09 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 24/09/2011, 06h38
  4. [PHP 5.3] Utilisation de CURL avec php
    Par boby15000 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2009, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo