Newsgroup: it.comp.os.linux.iniziare
Titolo: wget da pagina php

Sto cercando di scaricare un file da un sito da cui viene
reperito attraverso uno script php.
Il link è qualcosa del tipo:
http://nomesito.bla/path/index.php?p=aaa&file=123
Riesco ad avviare il download con:
wget -O miofile '
http://nomesito.bla/path/index.php?p=aaa&file=123
'
Insomma funziona...
Ora poniamo chela connessione sfortunatamente cada.
Vorrei riprendere ildownloada sfruttando la funzionalità di
resume di wget (opzione -c).
Ma provando:
wget -O miofile -c \
     '
http://nomesito.bla/path/index.php?p=aaa&file=123
'
Ecco che invece di riprendere dal punto interrotto, riprende da
capo (quindi sovrascrivendo il file di output "miofile").
Non riesco a reperire il link diretto al file remoto, ho provato
anche con fownloadhelper, copiando il link, ma ottengo sempre e
solo il link del tipo riportato sopra.
La mia ipotesi è che probabilmente il resume non sia supportato
lato server... ma non si sa mai, magari potrebbe essere un
problema relativo al php.
Vi chiedo, c'è qulache metodo partizolare per far funzionare il
resume di wget con un link del tipo soprariprtato?
Grazie in anticipo! :-)

 server...
Questo è poco ma sicuro, visto che la richiesta è http.
Pero' il server dovrebbe supportare almeno l'header Range, esegui wget 
con l'opzione -S e vedi come è impostato l'header Accept-Ranges, se è 
"none" allora niente da fare, altrimenti il problema sta da un'altra 
parte. 
 

 Grazie in anticipo! :-)
Il resume è possibile solo quando il server gestisce le richieste parziali.
Quando un web server fornisce contenuti statici, puoi richiedere solo
una frazione del file. Tra parentesi la cosa viene sfruttata anche da
programmi come DTA (e vari download accelerator) per creare diverse
connessioni allo stesso server dove ciascuna prende un frammento.
Dal link che mandi, però, il contenuto viene fornito da uno script PHP,
che apparentemente non gestisce le richieste parziali.
In questo caso non c'è molto da fare.
Ottenere il "percorso" del file diretto può essere impossibile (in
questi casi i file veri vengono generati al volo, o sono archiviati in
posizioni non condivise dal web server, a volte anche nelle tabelle dei db).
Quindi rimangono come possibilità quelle di eseguire il download da
un'altra macchina dove la connessione non va in timeout (ma va in
watchdog php o si resetta la connessione per problemi di linea? nel
primo caso sono volatili per diabetici), o scrivi al webmaster facendo
notare il problema e sperando che risolva o che ti proponga una
soluzione al problema.
PSK

 anticipo! :-)
La richiesta di un file .php non ritorna il contenuto del file ma un 
contenuto dinamico che può variare di volta in volta.
Penso che il resume possa funzionare solo se i file sono statici e 
quindi solo se il server è in grado di scorrere il file al punto di 
resume.  Cosa che non può accdere in un output generato dinamicamente.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 primo caso sono volatili per diabetici).
Gią, siamo nella "situazione amara" in quanto proprio mi cade la
connessione a volte (connessione su rete mobile).
Il file di cui parlavo era un video di svariati MB.

 parte. 
Più tardi provo.

 file’; file will be truncated immediately, and all downloaded
content will be written there."
prova a ripetere il test salvando i risultati del download nella
maniera classica (senza -O).
bye!

 maniera classica (senza -O).
Uso wget da un po' e ho sempre utilizzato l'opzione "-O" per
nominare il file scaricato come meglio credevo.
Leggendo il manuale, anche la parte che riporti non mi pare di
ritrovare la causa di questo fallimento.
Di solito dando le opzioni "-O nomefile -c" wget continua
tranquillamente il download sul file locale nominato "nomefile".
Se tale file non esiste viene ovviamente creato, altrimenti wget
confronta la dimensione del file remoto con quella del file
locale e continua il download dal bit che si era raggiunto.
In ogni caso ho comunque fatto una prova. Ma non cambia nulla.
A parte il nome del file salvato:
Saving to: `index.php?p=free&file=37'
se poi interrompo il download con ctrl-c e rilancio il comando
(con l'opzione -c ovviamente), il file di output sar� nuovamente
"index.php?p=free&file=37"
Ma il download ricomincia da zero bytes. Il problema � quello.

 Pi� tardi provo.
Di seguito la sessione di download troncata praticamente subito
con un brutale ctrl-c:
========================================================================
$ wget -c -S '
http://fingerpicking.net/digital/index.php?p=free&file=37
'
--2010-03-30 18:48:07-- 
 
http://fingerpicking.net/digital/index.php?p=free&file=37
Resolving fingerpicking.net... 64.22.66.178
Connecting to 
fingerpicking.net
|64.22.66.178|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Tue, 30 Mar 2010 16:48:13 GMT
  Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7a
        mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
  X-Powered-By: PHP/5.2.9
  Pragma: public
  Expires: 0
  Cache-Control: must-revalidate, post-check=0, pre-check=0, private
  Content-Disposition: attachment;
                      filename=morone-boysofdulcamara-lezione-16275.flv;
  Content-Transfer-Encoding: binary
  Set-Cookie: PHPSESSID=d75f65aebfd6119e9218d0d04c38eda9; path=/
  Content-Length: 46444410
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: application/octet-stream
Length: 46444410 (44M) [application/octet-stream]
Saving to: `index.php?p=free&file=37'
 0% [                   ] 49,268      9.35K/s  eta 66m 24s
==========================================================
Sinceramente non vedo l'header di cui parli...

 Sinceramente non vedo l'header di cui parli...
vero, quindi niente Range, ergo devi riscaricarti il file da zero.
Questo perchè il file che richiedi viene creato dinamicamente, o meglio, 
il file esiste già sul server, ma è la richiesta ad essere dinamica 
(magari nome e posizione sono memorizzati nel db, o addirittura il file 
stesso sta nel db come campo di tipo blob).
Mi sa che non puoi fare resume.

 Mi sa che non puoi fare resume.
Ok, la conferma mi serviva per capire se potevo fare qualcosa
oppure no.
D'altra parte ultimamente la connessione non va poi cos� male
parlando di stabilit�...
Saluti e grazie ancora.

 Ma il download ricomincia da zero bytes. Il problema quello.
Evidentemente no, adesso ne siamo sicuri ;^)
bye!