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 :
J'arrive à télécharger un fichier en récupérant une donnée vie LiveHTTP de Firefox :
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"
https://hubic.com/home/browser/download/
Pour cela j'utilise mon script de la façon suivante : hubic.sh -d "dlName=nomepisodes.ods&files=%255B%2522default%2Fnomepisodes.ods%2522%255D"
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
Le code est :
Jusque là tout va .....
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
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/
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 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 va générer
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
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 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/
j'utilise grep et sed pour creer mes variables $signature $url $redirect $max_file_size $max_file_count et $expires
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}
Ensuite je regarde avec LiveHTTP la suite et je vois ça :
https://lb1.hubic.ovh.net/v1/AUTH_c8...2847c/default/
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
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 ----------------------------------------------------------
mais sans succès.
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/
J'essaie surtout de comprendre comment passer de l'analyse de LiveHTTP vers CURL.
Merci de vos éclaircissement
Cordialement,
Partager