[ninux-dev] Download e buffering
Alessandro Gubitosi
gubi.ale at gotanotherway.com
Wed Feb 19 13:53:46 CET 2014
Il problema è che né proxy né samba sono ottimali, secondo me.
Poi samba è il mio più acerrimo nemico, quando ho visto che si poteva
fare via http ho esultato...
Ultima news: ero di sopra a mangiare e mi sono lisciato col postino, che
un minuto prima mi ha lasciato la cartolina nella cassetta che c'è un
pacco per me.
Poteva chiamare?! Vabbè, devo andarlo a ritirare io, ormai domattina. uff...
Gubi
Il 19/02/2014 13:05, Francesco Rapanà ha scritto:
> Ho effettuato l'iscrizione a Ninux-dev così posso dare il mio contributo.
>
> Le alternative secondo me sono due:
> - file proxy, cioè quello di cui stiamo già parlando (è
> necessario allow_url_fopen = true)
> - smbclient [1] o [2], con la ovvia limitazione che funzionerebbe solo
> con smb e non, ad esempio, con ftp
>
> Il codice che ho inviato "dovrebbe" funzionare, se hai tempo puoi fare
> un piccolo test con due pagine download, la prima con
> readfile_chunked(file_locale) e la seconda con
> readfile_chunked(url_pagina_download1).
>
> Francesco
>
> [1] http://smorgasbork.com/component/content/article/34-web/66-accessing-smb-servers-with-php
> [2] http://sourceforge.net/projects/smbwebclient/
>
>
>
>
> Il giorno 19 febbraio 2014 12:15, Alessandro Gubitosi
> <gubi.ale at gotanotherway.com <mailto:gubi.ale at gotanotherway.com>> ha
> scritto:
>
> Inoltro ninux-dev per "competenza".
>
> Il 19/02/2014 10:14, Francesco Rapanà ha scritto:
>> Nel caso il file si trovi sulla stessa macchina dove gira lo
>> script va bene, ma se il file si trova su un'altra macchina mi
>> pare che il codice non è ancora presente, o sbaglio? In questo
>> caso lo script farebbe @readfile($url_file_altro_nas) o farebbe
>> un redirect verso lo script che gira sul nas che contiene il file?
> Hai ragione non è ancora stato implementato, ma perché sto appunto
> aspettando che mi arrivi un altro device per fare lo sviluppo su
> entrambi, di modo che poi si possa passare agli step successivi.
> Comunque, in teoria parsa l'hash e se c'è il token non guarda in
> locale ma fa una richiesta in broadcast rivolta a quel token, che
> a sua volta parsa l'hash e tira fuori il file.
> Lo script locale re-inoltrerebbe l'output della macchina remota,
> ma non so a questo punto quale potrebbe essere la reazione (se
> appare la finestra di download o fa qualche scherzetto).
> Hai idee migliori?
>
>> In ogni caso readfile credo (non ho testato) dovrebbe dare
>> problemi di memoria con file molto grandi se è abilitato l'output
>> buffering, nei commenti su php c'è la funzione readfile_chunked
>> con il flush. Andrebbe testato sia usando readfile con file
>> locale che con url, mi preoccupa più questo secondo caso perché
>> potrebbe tentare di scaricare prima il file in memoria locale e
>> poi passarlo in output.
>>
>> <?php
>> function readfile_chunked($filename,$retbytes=true) {
>> $chunksize = 1*(1024*1024); // how many bytes per chunk
>> $buffer = '';
>> $cnt =0;
>> // $handle = fopen($filename, 'rb');
>> $handle = fopen($filename, 'rb');
>> if ($handle === false) {
>> return false;
>> }
>> while (!feof($handle)) {
>> $buffer = fread($handle, $chunksize);
>> echo $buffer;
>> ob_flush();
>> flush();
>> if ($retbytes) {
>> $cnt += strlen($buffer);
>> }
>> }
>> $status = fclose($handle);
>> if ($retbytes && $status) {
>> return $cnt; // return num. bytes delivered like
>> readfile() does.
>> }
>> return $status;
>>
>> }
>> ?>
> Avevo notato bene, infatti su questa cosa che mi ero ripromesso di
> parlarne in ML dev.
> Come detto sopra, non lo so, andrebbe testato, e sto aspettando
> questo device <http://imx.solid-run.com/product/cubox-i4-pro/> da
> metà novembre (spedito poi il 2 febbraio).
> Adesso è "/In carico al portalettere del centro postale di RM
> PALESTRINA CSD in data 19-FEB-2014"/), quindi in teoria dovrebbe
> arrivare a giorni, se non oggi stesso.
> Ti terrò aggiornato cmq, perché essendo disoccupato e in risposta
> di notizie lavorative sto lavorando a tempo pieno per Ninux
> <https://github.com/gubi/Ninuxoo-2.0/commits?author=gubi> :D
>
> Grazie comunque per il coinvolgimento e per la funzione che
> testerò sicuramente ;)
> A presto
>
> Gubi
>
>>
>> Il giorno 19 febbraio 2014 08:56, Alessandro Gubitosi
>> <gubi.ale at gotanotherway.com <mailto:gubi.ale at gotanotherway.com>>
>> ha scritto:
>>
>> Parli di una cosa come questa?
>> http://192.168.36.210/Scheda:?ZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2U6Ly9NdXNpY2EvR2lvcmdpbyBHYWJlci8oMTk4NCkgLSBHYWJlci8wNyAtIElsIFNvY2lhbGUubXAz
>>
>> Non guardare l'ip perché poi dovrà andare su dns anycast
>> ninux (ad es. sarà http://ninuxoo.ninux.org/Scheda:?sde3uhswf3g).
>> Per rendere questo link scaricabile poi anche dall'america ci
>> vorrà magari un url shortener (in ninux ce n'è già uno) e un
>> proxy bgp come anche suggerisci tu, con un altro dns, magari.
>> L'hash contiene già tutto il percorso al file (col token del
>> nas al posto del suo ip), per il resto i nas si trovano in
>> rete da soli via mdns.
>>
>> Lo script imputato al download è questo qui:
>> https://github.com/gubi/Ninuxoo-2.0/blob/master/common/include/funcs/download.php
>> Grazie per la disponibilità del device, ma a meno che non mi
>> dai accesso ssh per correggere gli script che man mano
>> sistemo, meglio aspettare.
>> Sicuramente sarà utile nella fase di collaudo... ;)
>> Notizia: i NAS si potranno collegare tra loro anche se sono
>> remoti, basta indicare l'indirizzo ipv(4|6) o dns... ;)
>>
>> A presto
>> Gubi
>>
>> Il 18/02/2014 22:23, Francesco Rapanà ha scritto:
>>> Se ti può essere utile per i test, ho un synology DS213j.
>>> Al momento sto vedendo come si potrebbe fare una specie di
>>> proxy da installare su un route reflector client in modo da
>>> rendere disponibile all'esterno determinati file / cartelle
>>> interne alla rete.
>>> es: ho un NAS sul nodo xx e un BGP Route Reflector con IP
>>> pubblico sul nodo yy. Se volessi rendere "pubblici"
>>> determinati file del NAS, il proxy potrebbe mostrare la
>>> lista dei file su $IP_pubblico_yy/NAS_xx/ e per il download
>>> credo andrebbe fatto qualcosa con fopen / fread / fwrite
>>>
>>
>
>
>
>
> _______________________________________________
> ninux-dev mailing list
> ninux-dev at ml.ninux.org
> http://ml.ninux.org/mailman/listinfo/ninux-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20140219/47e5c69f/attachment-0001.html>
More information about the ninux-dev
mailing list