Blog: http://www.ddcs.re
e-poštu: exportit.ddcs@gmail.com
Osnovni cilj je da dozvoli korištenje vaših podataka koje se nalaze na vašem Android telefonu ili tabletu, na drugim uređajima kao što je drugi Android sistem ili na računaru ili ako je medij kompatibilan na vašem televizoru. Za to se koristi najnapotovniji protokoli, UpnP i Http.
izvozite-ga implementira Server i Klijent (dve ikone na Android radnoj površini). Server pravi listu video, audio i slika datoteka, a dodatne datoteke sa pdf i e-knjigama mogu se pronaći u vašem Android sistemu. Lista ovih datoteka sa njihovim karakteristikama postavljena je u memoriju i objavljivati preko UpnP Directory Service-a i HTTP servera.
Datoteke se distribuiraju samo u četiri kategorije: video datoteke (mp4, webm i 3gpp) audio datoteke (mp3, ogg i m4a), datoteke sa slikama (jpeg, gif ili png), i knjige (pdf, prc, epub, pdb, mobi i djvu).
Server nije dizajniran da upravlja hiljadama datoteka, nekoliko stotina izgleda kao ono što normalno imamo na telefonu ili tabletu.
Prvo, pokrenite server i sačekajte kraj procesa inicijalizacije. Ako ste na Wifi ili na mobilnoj mreži, možete da proverite status i URL-ove da biste ih isprobali. Fort većina ljudi server nije dostupan sa mobilne mreže. Prvo možete proveriti kako se vaš server distribuira pomoću web pretraživača koji ukazuje na lokalno URL nakon izlaska iz prozora servera (pravi server radi u pozadini). Takođe je moguće koristiti adresu IPv6 loopback-a da biste pristupili HTML stranici iz vašeg pretraživača sa URL-om kao što je "http://[::1]:8192".
Kao drugi korak, možete koristiti konfiguraciju servera da promenite ime servera i možda prilagodite veličinu fonta vašem jeziku i uređaju.
Sledeći korak se sastoji u definisanju korisničkog imena i lozinke kao administratora koji ima pristup svim kategorijama.
Kada to funkcioniše, možete definirati dodatna korisnička imena sa pristupom određenim kategorijama.
I konačno možete definirati "port forwarding" kada ste povezani na vašem kućnom Wifi-u da biste bili dostupni sa Interneta. Ako koristite punu aplikaciju pomoću UPnP podrške, morate samo definirati nenasilni port alias u konfiguraciji i proveriti konzolu ako ona radi. Sa besplatnom aplikacijom morate ručno konfigurirati ADSL ruter. Kada izgleda dobro, možete ga probati od kuće bilo kojim web pregledačem, koristeći besplatan javni proksi sa podrškom za Javascript.
HTTPS iako je podržan, ne izgleda kao najbolji za korisnike u normalnim uslovima zbog složenosti da se koristi sa pametnim telefonima i lošim performansama u poređenju sa jednostavnim HTTP-om.
Kada se port forwarding i autentikacija rade, možete koristiti opciju "club" da biste lako dostupni na Internetu, objavljujući svoje podatke na www.ddcs.re. Da biste testirali sopstveni server, neophodna je upotreba Web proxy-a, jer vaša vanjska IP adresa nije dostupna sa Wifi mreže. Ova opcija dozvoljava da se izbjegne distribucija promjenljivog URL-a sa IP adresom i brojem porta, samo klikom na pravu liniju servera definisanu vašim imenom servera, mala opisna rečenica i jedna od vaših slika kao ikona.
UPnP podršku obezbeđuje Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, Švajcarska), a HTTP server je izgrađen na vrhu NanoHTTPD verzija 1.25, Copyright 2001,2005-2012 Jarno Elonen i 2010 Konstantinos Togias. Tako ova aplikacija sadrži LGPL softver. Obe su modifikovane verzije, nije izvorni kod. Biblioteka TelealCling je samo jedna jar datoteka izgrađena sa nekoliko modifikacija koje zahteva aplikacija od clingcore, clingsupport (1.0.5) i telealcommon (1.0.14) jar datoteke ... NanoHttpd je modifikovan da podržava metod "HEAD", da dodaju DLNA HTTP zaglavlja, logovanje zahteva i da obezbedi početnu početnu stranicu. Izvorni kod je dostupan kao izvršni.
Sve emotikone korišćene u komentarima dizajnirao je i napravio Enrico Gollnow (Erni). Posjetite njegovu web stranicu kako biste pronašli više informacija o njemu i njegovim smećama (http://www.gomotes.com).
Rutina za šifrovanje lozinke koristi jsbn biblioteku Tom Wu (Javascript BigInteger i RSA) na strani web pretraživača i Java biblioteku SpongyCastle na serveru.
Ova aplikacija koristi JmDNS, implementaciju multi-cast DNS-a u Java za otkrivanje usluge i registraciju. Ova biblioteka je potpuno interoperabilna sa Appleovim Bonjour protokolom. Sva zahvalnost Arthur van Hoff, Rick Blair i Kai Kreuzer, za ovu efikasnu biblioteku licenciranu pod Apache Licencom, verzija 2.0.
Ova aplikacija koristi HTML5 video plejer pod nazivom Playr koju je razvio Julien 'delphiki' Villetorte gdelphiki@gmail.com pod MIT licencom, zahvaljujući ovom odličnom poslu i dozvolama za njegovu upotrebu.
Koristimo PDF.JS za prikazivanje PDF datoteka kroz WebView. Ovaj projekat otvorenog koda podliježe licenci Apache verzije 2. PDF.js (https://mozilla.github.io/pdf.js/) je preglednik Portable Document Format (PDF) koji je izgrađen sa HTML5. PDF.js vodi zajednica i podržava ga Mozilla.
Paket epubjs-reader (https://github.com/futurepress/epubjs-reader) se koristi za epub e-knjige i knjige se prikazuju u WebViewu. Ovaj softver je dostupan preko MIT licence.
Sada koristimo Acme4J kao Java klijenta (https://shredzone.org) za protokol _Automatic Certificate Management Environment_ (ACME) kako je navedeno u RFC 8555 (https://tools.ietf.org/html/rfc8555) ). ACME je protokol koji certifikacijski organ (CA) i aplikant mogu koristiti za automatizaciju procesa verifikacije i izdavanja certifikata. To je nezavisna implementacija otvorenog koda koja nije povezana sa Let's Encrypt niti je podržana.
Acme4J treba Jose4j biblioteku (https://bitbucket.org/b_c/jose4j/wiki/Home) koja je robusna i jednostavna za korištenje implementacija otvorenog koda JSON Web Tokena (JWT) i JOSE paket specifikacija.
Dve glavne komponente su server i klijent, a nakon instalacije, na vašoj radnoj površini postoje dvije ikone.
Server pokreće dugotrajnu uslugu koja je zapravo pravi Media server koji pruža UPnP i HTTP usluge. Ova usluga radi u pozadini, samo je ikona ikone za obaveštenja postavljena na Android traci sa zadacima. Važna podzastava servera je konfiguracija. Po defaultu server izvozi sve svoje podatke datoteke na lokalnoj Wifi mreži. Možete da izaberete / deselektujete datoteke kroz konfiguraciju.
Klijent obrađuje podatke koje distribuiraju UPnP serveri pronađeni na lokalnoj (Wifi) mreži. Ima zadatke kao Mediaplayer za prikazivanje video zapisa mp4, webm ili 3gpp i slušajući mp3, ogg ili m4a audio datoteke, prozor za dijalog Webview za prikazivanje fotografija. Pored toga, pozadinska usluga se može pokrenuti za preuzimanje datoteka sa servera. Kada se započne pre servera, klijent inicijalizira UPnP uslugu, ali bez distribucije datoteka sa podacima, neka vrsta praznog servera. Ova usluga je potrebna za pristup drugi UPnP serveri.
U podešavanjima sistema, a zatim Napredna podešavanja, možete pronaći Upravljač baterije. Da biste stalno održavali i pokrenuli server, trebalo bi da izaberete Performanse za Power plan, i aktivirajte ovu aplikaciju u zaštićenim aplikacijama i u aplikacijama koje imaju jaku moć.
Ako je to izvodljivo, morate čuvati svoju WiFi kada je uređaj u stanju da spava, a server pokreće, a osim toga, ako vaš uređaj ima integrisani DLNA stack, ne biste trebali tražiti "obližnje uređaje" u sistemskim postavkama.
Server zahteva pristup datotskom sistemu i da čita podešavanja telefona za otkrivanje promena stanja kao na Wifi ili ako je prenos podataka aktiviran ako je povezan sa mobilnom mrežom. Opcionalno server može poslati SMS kada se spoljna IP adresa promeni (opcija u konfiguraciji) i kôd države od Access_Coarse_Location, (nije precizna lokacija samo kod države sa dve slova). Klijentski program koristi dozvolu za pisanje na vanjsko skladište za čuvanje preuzetih datoteka i dozvolu za snimanje zvuka za prikazivanje krivih prilikom slušanja muzike.
Da biste objavljivali datoteke na Internetu sa vašim izvozite-ga serverom, morate konfigurirati aluzu porta HTTP servera na vašem ADSL ruteru. UPnP protokol nije dostupan na Internetu, samo HTTP. Podrazumevani broj porta je 8192 (možete ga modifikovati kroz konfiguraciju), a port za alijas za javnu mrežu mora biti dat na ADSL ruteru koji je povezan sa Wifi IP adresom izvozite-ga servera. Standardni broj spoljnog porta u konfiguraciji je 0, ali možete podesiti ono što želite, npr. 8192 ili 80. URL adresa za korištenje za pristup vašem serveru je dat na vrhu prozora servera.
Moj web server je godinama podržavao HTTPS sa samopotpisanim certifikatima, ali, iako radi, ovaj način daje probleme i poruke o greškama. To je razlog zašto sam odlučio da implementiram protokol Automatic Certificate Management Environment_ (ACME), da dobijem i održavam standardne X509 certifikate.
ACME protokol ima neke tehničke zahtjeve, nije upotrebljiv za sve. Da biste koristili ovaj protokol, potrebno vam je fiksno DNS ime na vašoj vanjskoj IP adresi. X509 sertifikat mora biti postavljen samo na DNS ime, a ne na IP adrese.
Da biste dobili certifikat od Let's Encrypt, trebate koristiti HTTP server sa standardnim brojem porta (80) na ovom vanjskom DNS imenu. Sa mojom aplikacijom, certifikat možete dobiti samo na serveru koji radi sa pseudonimom HTTP eksternog porta postavljenim na "80". Samo jedan server može koristiti ovu vrijednost na vašoj kućnoj Wi-Fi mreži. Kada imate važeći certifikat, možete koristiti HTTPS zadani port "443" samo na jednom od vaših web servera postavljenih kao "alias port". Ali da biste izbjegli "root" vašeg uređaja, trebali biste koristiti portove iznad 1024 kao "lokalne" brojeve portova prema uzorku 8080 za HTTP i 8443 za HTTPS.
Konfiguracijski panel je modificiran da podržava pseudonime portova za HTTP i HTTPS protokole, a osim toga možete dati DNS ime za koje znate da radi, za svoju vanjsku IP adresu Ovo ime će biti definirano u vašem X509 certifikatu uz ime vašeg mrežnog provajdera ako ga imate. Certifikat se automatski distribuira na druge export-it servere koji rade na istoj Wi-Fi mreži, dozvoljavajući korištenje HTTPS-a preko Interneta, ali s drugim vrijednostima pseudonima porta.