Blog: http://www.ddcs.re/it
e-mail: exportit.ddcs@gmail.com
Essa ha come obiettivo principale quello di consentire l'uso dei vostri dati ubicati sul vostro telefono Android o tablet, altri dispositivi come un altro sistema Android o PC, o se il supporto è compatibile sul televisore. Per questo, utilizza i protocolli più standard UPnP e Http.
esportarlo implementa un server e un client (due icone sul desktop Android). Il server di costruire un elenco di file di immagini, video, audio e, e inoltre il file PDF e eBook si possono trovare nel vostro sistema Android. L'elenco di questi file con le loro caratteristiche sono fissati nella memoria e pubblicato attraverso un servizio di directory UPnP e un server HTTP.
I file vengono distribuiti solo in quattro categorie: i file video (mp4, WebM e 3GPP) i file audio (mp3, ogg e m4a), i file di immagine (JPEG, GIF o PNG), e ebooks (pdf, prc, epub, pdb, mobi e DjVu).
Il server non è progettato per gestire migliaia di file, a poche centinaia sembra quello che abbiamo normalmente su un telefono o tablet.
Prima di tutto, basta avviare il server e attendere la fine del processo di inizializzazione. Se siete su Wi-Fi o su rete mobile è possibile controllare lo stato e gli URL di provarlo. Forte la maggior parte delle persone che il server è inaccessibile dalla rete mobile. È prima possibile controllare ciò che il server sta distribuendo con una punta browser web per il locale URL dopo essere andato fuori dalla finestra del server (il server vero e proprio è in esecuzione in background). E 'anche possibile utilizzare l'indirizzo di loopback IPv6 per accedere alla pagina HTML dal browser con un URL del tipo "http://[::1]:8192".
Come secondo passo, è possibile utilizzare la configurazione del server di cambiare il nome del server e forse adattare la dimensione dei caratteri per la lingua e il dispositivo.
Il passo successivo consiste nel definire un nome utente e una password di amministratore, con l'accesso a tutte le categorie.
Quando funziona, è possibile definire i nomi utente aggiuntivi con accesso a specifiche categorie.
E, infine, è possibile definire "port forwarding" quando si è connessi sulla vostra casa Wifi per essere accessibile da Internet. Se si utilizza la piena applicazione con il supporto UPnP, è sufficiente definire un alias non porta nulla nella configurazione e controllare la console se funziona. Con l'applicazione gratuita è necessario configurare manualmente il router ADSL. Quando si guarda bene si può provare da casa con qualsiasi browser web si dispone, utilizzando un proxy Web pubblico gratuito con supporto JavaScript.
HTTPS anche se supportato, non sembra essere la migliore per gli utenti normali a causa della complessità di usarlo con gli smartphone e le prestazioni scarsa rispetto ad HTTP semplice.
Quando il port forwarding e l'autenticazione stanno lavorando, è possibile utilizzare l'opzione "club" per essere facilmente accessibile su internet, pubblicando i dati su www.ddcs.re. Per testare il proprio server richiede l'uso di un proxy Web perché il vostro indirizzo IP esterno non è accessibile dalla rete Wi-Fi. Questa opzione permette di evitare la distribuzione di un URL che cambia con l'indirizzo IP e numero di porta, semplicemente cliccando sulla linea di server destra definito dal nome del server, una piccola descrizione frase e uno della vostra immagine come icona.
Il supporto UPnP è fornito da Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, Svizzera), e HTTP Server è costruito sulla cima di NanoHTTPD versione 1.25, Copyright 2001,2005-2012 Jarno Elonen e il 2010 Konstantinos Togias. Così questa applicazione contiene software LGPL. Entrambi sono versioni modificate, non di codice nativo. La biblioteca aderisce teleal è solo un file jar costruito con poche modifiche richieste dall'applicazione di cling-core, si cling-support (1.0.5) e file jar teleal-common (1.0.14) ... NanoHttpd è stato modificato per supportare il metodo "HEAD", per aggiungere le intestazioni HTTP DLNA, richiesta di registrazione e di fornire una home page iniziale. Il codice sorgente è disponibile come eseguibile.
Tutti gli emoticon utilizzati nei commenti sono stati progettati e realizzati da Enrico Gollnow (Erni). Visita il suo sito web per trovare maggiori informazioni su di lui e le sue faccine (http://www.gomotes.com).
La routine di crittografia della password utilizza la libreria jsbn di Tom Wu (Javascript BigInteger e RSA) sul web lato browser e la libreria Java SpongyCastle sul lato server.
Questa applicazione utilizza JmDNS, un'implementazione del DNS multi-cast in Java per l'individuazione e la registrazione dei servizi. Questa libreria è completamente interoperabile con il protocollo Bonjour di Apple. Tutti i miei ringraziamenti a Arthur van Hoff, Rick Blair e Kai Kreuzer, per questa efficiente libreria con licenza Apache License, Versione 2.0.
Questa applicazione utilizza un riproduttore video HTML5 chiamato Playr sviluppato da Julien 'delphiki' Villetorte gdelphiki@gmail.com sotto Licenza MIT, grazie per questo ottimo lavoro e il permesso di usarlo.
Stiamo utilizzando PDF.JS per mostrare i file PDF attraverso una WebView. Questo progetto Open Source è soggetto a una licenza Apache versione 2. PDF.js (https://mozilla.github.io/pdf.js/) è un visualizzatore PDF (Portable Document Format) creato con HTML5. PDF.js è guidato dalla community e supportato da Mozilla.
Il pacchetto epubjs-reader (https://github.com/futurepress/epubjs-reader) viene utilizzato per gli eBook epub e i libri vengono visualizzati in una WebView. Questo software è disponibile tramite una licenza MIT.
Ora stiamo utilizzando Acme4J come client Java (https://shredzone.org) per il protocollo _Automatic Certificate Management Environment_ (ACME) come specificato nella RFC 8555 (https://tools.ietf.org/html/rfc8555 ). ACME è un protocollo che un'autorità di certificazione (CA) e un richiedente possono utilizzare per automatizzare il processo di verifica e rilascio del certificato. È un'implementazione open source indipendente che non è affiliata o approvata da Let's Encrypt.
Acme4J ha bisogno della libreria Jose4j (https://bitbucket.org/b_c/jose4j/wiki/Home) che è un'implementazione open source robusta e facile da usare di JSON Web Token (JWT) e della suite di specifiche JOSE.
I due componenti principali sono il server e il client, e, dopo l'installazione, è possibile avere due icone sul desktop.
Il server avvia un lungo servizio in esecuzione che è in realtà, la vera Media Server UPnP e fornisce servizi HTTP. Questo servizio è in esecuzione in background, solo una piccola icona di notifica si trova sulla barra delle applicazioni Android. Una importante attività secondaria del server, è la configurazione. Di default il server esporta tutti i file di dati sulla rete WiFi locale. È possibile selezionare / deselezionare i file attraverso la configurazione.
I dati di processi client distribuiti da server UPnP trovano sul (Wifi) rete locale. Ha come attività secondarie di Mediaplayer per mostrare mp4, WebM o 3GPP e video l'ascolto di file audio m4a mp3, ogg o una finestra di dialogo Webview per la visualizzazione di foto. Inoltre, un servizio di sfondo può essere avviato per scaricare file dal server. Quando viene avviato prima che il server, il client inizializzare il servizio UPnP, ma senza la distribuzione di file di dati, una sorta di server vuoto. Questo servizio è necessario per ottenere l'accesso a altri server UPnP.
Nelle impostazioni del sistema, quindi le impostazioni avanzate, è possibile trovare direttore della batteria. Per mantenere il server installato e funzionante in modo permanente, è necessario selezionare le prestazioni per il risparmio di energia, e attivare questa applicazione in applicazioni protette e in applicazioni ad alta intensità di potenza.
Se possibile si deve mantenere il WiFi attivo quando il dispositivo sta dormendo e il server viene eseguito, e, inoltre, se il dispositivo ha uno stack DLNA integrato, non si deve cercare "dispositivi vicini" nelle impostazioni di sistema.
il server richiede l'accesso al file system e per leggere le impostazioni del telefono per rilevare cambiamenti di stato, come il Wi-Fi o se la trasmissione dei dati viene attivato se collegato alla rete di telefonia mobile. Opzionalmente il server può inviare SMS quando l'indirizzo IP esterno viene modificato (opzione nella configurazione) e il codice del paese per ACCESS_COARSE_LOCATION, (Non un luogo preciso solo il due lettere codice del paese). il programma client utilizza il permesso di scrittura di memorizzazione esterna per il salvataggio dei file scaricati, e il permesso audio record per mostrare le curve durante l'ascolto di musica.
Per pubblicare file su Internet con il server esportarlo, è necessario configurare la porta aliasing server HTTP del router ADSL. Protocollo UPnP non è disponibile su Internet, solo HTTP. Il numero di porta di default è 8192 (è possibile modificarlo attraverso la configurazione), e una porta alias per la rete pubblica, deve essere dato sul router ADSL associato all'indirizzo Wifi IP del server esportarlo. Il numero di porta esterna di default nella configurazione è 0, ma è possibile impostare ciò che si vuole, come 8192 o 80. L'URL da utilizzare per accedere al server, è dato in alto a destra della finestra del controllo server.
Il mio server Web supporta da anni HTTPS con certificati autofirmati, ma, sebbene funzioni, in questo modo dà problemi e messaggi di errore. Questo è il motivo per cui ho deciso di implementare il protocollo ACME (Automatic Certificate Management Environment) per ottenere e mantenere i certificati X509 standard.
Il protocollo ACME ha alcuni requisiti tecnici, non è utilizzabile da tutti. Per utilizzare questo protocollo, è necessario un nome DNS fisso sul proprio indirizzo IP esterno. Il certificato X509 deve essere impostato solo su un nome DNS non su un indirizzo IP.
Per ottenere il certificato da Let's Encrypt, è necessario utilizzare un server HTTP con il numero di porta standard (80) su questo nome DNS esterno. Con la mia applicazione, puoi ottenere il certificato solo su un server in esecuzione con l'alias della porta esterna HTTP impostato su "80". Solo un server può utilizzare questo valore sulla tua rete Wi-Fi domestica. Quando si dispone di un certificato valido, è possibile utilizzare la porta predefinita HTTPS "443" solo su uno dei server Web impostati come "porta alias". Ma per evitare di "rootare" il tuo dispositivo dovresti usare le porte superiori a 1024 come numeri di porta "locali" per esempio 8080 per HTTP e 8443 per HTTPS.
Il pannello "configurazione" è stato modificato per supportare gli alias di porta per entrambi i protocolli HTTP e HTTPS, e in più puoi dare un nome DNS che sai funzionare, per il tuo indirizzo IP esterno Questo nome sarà definito nel tuo certificato X509 in aggiunta al nome del tuo provider di rete se ne hai uno. Il certificato viene distribuito automaticamente ad altri server export-it in esecuzione sulla stessa rete Wi-Fi, consentendo di utilizzare HTTPS su Internet ma con altri valori di alias di porta.