Blog: http://www.ddcs.re/nl
email: exportit.ddcs@gmail.com
Het heeft als belangrijkste doelstelling om het gebruik van uw gegevens in uw Android-telefoon of tablet, op andere apparaten, zoals een ander Android-systeem of uw pc staan, of als de media is compatibel op uw TV-toestel. Daarvoor gebruikt de standaard protocollen UPnP en HTTP.
exporteren implementeert een server en een client (twee iconen op je Android-bureaublad). De server bouwen van een lijst van de video-, audio-en beeldbestanden, en bovendien de PDF en eBook-bestanden kan vinden in uw Android-systeem. De lijst van deze bestanden met de kenmerken ervan worden ingesteld in het geheugen en gepubliceerd via een UPnP-Directory Service en een HTTP-server.
De bestanden worden alleen verspreid in vier categorieën: de videobestanden (mp4, WebM en 3GPP), de audiobestanden (mp3, ogg en m4a), de beeldbestanden (jpeg, gif of png) en ebooks (pdf, prc, epub, pdb, mobi en djvu).
De server is niet ontworpen om duizenden bestanden te beheren, een paar honderd lijkt op wat we normaal gesproken op een telefoon of tablet.
Allereerst, begin de server en wacht op het einde van initialisatieproces. Als u op de website Wifi of mobiel netwerk kunt u de status en de URL's om het te proberen te controleren. Fort de meeste mensen de server niet toegankelijk is vanaf mobiele netwerk. U kunt eerst controleren wat uw server verdeelt met een webbrowser te wijzen naar de lokale URL na te gaan uit het raam server (de echte server wordt uitgevoerd in de achtergrond). Het is ook mogelijk om de IPv6 loopback-adres gebruiken om toegang te krijgen tot de HTML-pagina vanuit uw browser met een URL zoals "http://[::1]:8192".
Als tweede stap, kunt u de server configuratie te gebruiken om uw server naam te veranderen en misschien wel de lettergrootte om uw taal en het apparaat aan te passen.
De volgende stap bestaat uit het definiëren van een gebruikersnaam en wachtwoord als beheerder met toegang tot alle categorieën.
Als het werkt, kunt u extra gebruikersnamen te definiëren met de toegang tot specifieke categorieën.
En tot slot kunt u "port forwarding" definiëren wanneer u bent aangesloten op uw huis Wifi toegankelijk van Internet te zijn. Als u gebruik maakt van de volledige toepassing met UPnP-ondersteuning, hoef je alleen maar een niet-null-poort alias definiëren in de configuratie en controle op de console of het werkt. Met de gratis applicatie moet u handmatig configureren van uw ADSL-router. Als het er goed uitziet kun je het proberen van thuis uit met elke webbrowser je hebt, met behulp van een gratis openbare webproxy met Javascript-ondersteuning.
HTTPS hoewel gesteund, lijkt niet het beste voor gewone gebruikers als gevolg van de complexiteit om het met smartphones en slechte prestaties in vergelijking met eenvoudige HTTP.
Bij port forwarding en authenticatie werken, kunt u gebruik maken van de optie "club" gemakkelijk toegankelijk op het internet te zijn, het publiceren van uw gegevens op www.ddcs.re. Om te testen uw eigen server vereist het gebruik van een webproxy omdat je eigen externe IP-adres is niet toegankelijk vanuit uw WiFi-netwerk. Deze optie maakt het mogelijk om de verdeling van een veranderende URL met het IP-adres en het poortnummer te vermijden, maar te klikken op de juiste server lijn gedefinieerd door uw naam van de server, een kleine omschrijving zin en één van uw afbeelding als icoon.
De UPnP-ondersteuning wordt geleverd door Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, Zwitserland), en de HTTP-server is gebouwd op de top van NanoHTTPD versie 1.25, Copyright 2001,2005-2012 Jarno Elonen en 2010 Konstantinos Togias. Dus deze applicatie bevat LGPL software. Beide zijn gewijzigde versies, niet native code. De teleal Cling bibliotheek is slechts een jar-bestand gebouwd met een paar aanpassingen vereist door de toepassing van cling-core, cling-support (1.0.5) en teleal-common (1.0.14) jar bestanden... NanoHttpd werd gewijzigd om de "kop"-methode te ondersteunen, om de DLNA HTTP-headers, verzoek logging toe te voegen en om een eerste huis pagina. De broncode is beschikbaar als de executable.
Alle emoticons gebruikt in de commentaren werden ontworpen en gemaakt door Enrico Gollnow (Erni). Bezoek zijn website voor meer informatie over hem en zijn smileys (http://www.gomotes.com) te vinden.
Het wachtwoord-encryptie routine gebruikt jsbn bibliotheek Tom Wu's (Javascript BigInteger en RSA) op web browser kant en de SpongyCastle Java-bibliotheek op de server kant.
Deze applicatie gebruikt JmDNS, een implementatie van multi-cast DNS in Java voor het opsporen en registreren van services. Deze bibliotheek is volledig compatibel met het Bonjour-protocol van Apple. Dank aan Arthur van Hoff, Rick Blair en Kai Kreuzer voor deze efficiënte bibliotheek met een licentie onder de Apache-licentie, versie 2.0.
Deze applicatie maakt gebruik van een HTML5-videospeler genaamd Playr, ontwikkeld door Julien 'delphiki' Villetorte gdelphiki@gmail.com onder MIT-licentie, en mijn hartelijke dank voor dit geweldige werk en de toestemming om het te gebruiken.
We gebruiken PDF.JS om PDF-bestanden te tonen via een WebView. Dit Open Source-project valt onder een Apache versie 2-licentie. PDF.js (https://mozilla.github.io/pdf.js/) is een Portable Document Format (PDF)-viewer die is gebouwd met HTML5. PDF.js wordt door de gemeenschap aangestuurd en ondersteund door Mozilla.
Het pakket epubjs-reader (https://github.com/futurepress/epubjs-reader) wordt gebruikt voor epub eBooks en de boeken worden getoond in een WebView. Deze software is beschikbaar via een MIT-licentie.
We gebruiken nu Acme4J als Java-client (https://shredzone.org) voor het _Automatic Certificate Management Environment_ (ACME)-protocol zoals gespecificeerd in de RFC8555 (https://tools.ietf.org/html/rfc8555) . ACME is een protocol dat een certificeringsinstantie (CA) en een aanvrager kunnen gebruiken om het proces van verificatie en certificaatuitgifte te automatiseren. Het is een onafhankelijke open source-implementatie die niet is aangesloten bij of wordt onderschreven door Let's Encrypt.
Acme4J heeft de Jose4j-bibliotheek nodig (https://bitbucket.org/b_c/jose4j/wiki/Home), een robuuste en gebruiksvriendelijke open source-implementatie van JSON Web Token (JWT) en de JOSE-specificatiesuite.
De twee belangrijkste componenten zijn de server en de client, en, na de installatie, heb je twee pictogrammen op uw bureaublad.
De server start een langlopende dienst die in feite de werkelijke media server die UPnP en HTTP diensten. Deze service wordt uitgevoerd op de achtergrond, wordt slechts een klein pictogram kennisgeving ingesteld op Android taakbalk. Een belangrijke deeltaak van de server, is de configuratie. Standaard is de server export al uw gegevens bestanden op het lokale netwerk Wifi. U kunt selecteren / bestanden deselecteren door de configuratie.
De opdrachtgever verwerkt gegevens gedistribueerd door UPnP-servers op de lokale (WiFi) netwerk. Het heeft als subtaken een mediaspeler voor het tonen van mp4, WebM of 3GPP video's en luisteren naar mp3, ogg of m4a audiobestanden, een dialoogvenster Webview venster voor het weergeven van foto's. Bovendien kan achtergrondservice gestart bestanden downloaden van de server. Toen begonnen voordat de server, de client initialiseren de UPnP-service, maar zonder verspreiden van gegevens bestanden, een soort lege server. Deze dienst is nodig om toegang te krijgen andere UPnP-servers.
In de instellingen van het systeem, dan geavanceerde instellingen, kunt u de batterij manager vinden. Om de server up and running te houden permanent, moet u de prestaties voor het energieplan dat te selecteren en deze app in beschermde apps en in energie-intensieve applicaties te activeren.
Indien mogelijk u uw WiFi-actief moet houden wanneer het apparaat is slapen en de server draait, en bovendien, als uw apparaat beschikt over een geïntegreerde DLNA stack, moet je niet op zoek naar "apparaten in de buurt" in de systeeminstellingen.
de server vereist toegang tot het bestandssysteem en de telefooninstellingen te lezen voor het opsporen van de staat veranderingen, zoals op de website Wifi of gegevensoverdracht wordt geactiveerd indien aangesloten op mobiel netwerk. Optioneel kan de server SMS kan verzenden wanneer de externe IP-adres (optie in de configuratie) en de landcode wordt veranderd door ACCESS_COARSE_LOCATION, (Niet een precieze locatie alleen de twee letters landcode). de client-programma maakt gebruik van de toestemming om externe opslag te schrijven voor het opslaan van gedownloade bestanden, en het geluid opnemen toestemming voor het tonen van bochten bij het luisteren naar muziek.
Mijn webserver ondersteunde al jaren HTTPS met zelfondertekende certificaten, maar hoewel het werkt, geeft het op deze manier problemen en foutmeldingen. Dat is de reden waarom ik besloot om het Automatic Certificate Management Environment_ (ACME)-protocol te implementeren om standaard X509-certificaten te krijgen en te onderhouden.
Het ACME-protocol heeft enkele technische vereisten, het is niet voor iedereen bruikbaar. Om dit protocol te gebruiken, heb je een vaste DNS-naam op je externe IP-adres nodig. Het X509-certificaat moet alleen worden ingesteld op een DNS-naam en niet op een IP-adres.
Om het certificaat van Let's Encrypt te krijgen, moet u een HTTP-server gebruiken met het standaard poortnummer (80) op deze externe DNS-naam. Met mijn toepassing kunt u het certificaat alleen krijgen op een server die wordt uitgevoerd met de externe HTTP-poortalias ingesteld op "80". Slechts één server kan deze waarde gebruiken op uw Wi-Fi-thuisnetwerk. Als u een geldig certificaat heeft, kunt u de HTTPS-standaardpoort van "443" alleen gebruiken op een van uw webservers die is ingesteld als "aliaspoort". Maar om te voorkomen dat u uw apparaat "roott", moet u poorten boven 1024 gebruiken als "lokale" poortnummers, bijvoorbeeld 8080 voor HTTP en 8443 voor HTTPS.
Het "configuratie"-paneel is aangepast om poortaliassen voor zowel HTTP- als HTTPS-protocollen te ondersteunen, en bovendien kunt u een DNS-naam geven waarvan u weet dat deze werkt, voor uw externe IP-adres Deze naam wordt gedefinieerd in uw X509-certificaat naast de naam van uw netwerkprovider als u die heeft. Het certificaat wordt automatisch gedistribueerd naar andere export-it-servers die op hetzelfde Wi-Fi-netwerk draaien, waardoor HTTPS via internet kan worden gebruikt, maar met andere poortaliaswaarden.