Blog: http://www.ddcs.re
e-mail: exportit.ddcs@gmail.com
Ito ay may bilang pangunahing layunin upang pahintulutan ang paggamit ng iyong data na matatagpuan sa iyong Android na telepono o tablet, sa ibang mga device katulad ng isa pang system ng Android o sa iyong PC, o kung ang media ay katugma sa iyong TV set. Para sa na, ginagamit nito ang pinaka-karaniwang mga protocol, UpnP at Http.
i-export ito ipinapatupad ng isang Server at Client (dalawang mga icon sa iyong Android desktop). Ang server ay bumuo ng isang listahan ng mga file na video, audio at imahe, at Bukod pa rito ang pdf at aklat file ito maaaring mahanap sa iyong system ng Android. Ang listahan ng mga file na ito gamit ang kanilang mga katangian ay nakatakda sa memory at na-publish sa pamamagitan ng isang UpnP Serbisyo Directory at isang HTTP server.
Ang mga file ay ipinamamahagi lamang sa apat na mga kategorya: mga file ng video (mp4, WebM at 3gpp) ang audio file (mp3, ogg at m4a), ang mga file ng larawan (jpeg, gif o png), at ebooks (pdf, PRC, EPUB, pdb, mobi at djvu).
Ang server ay hindi dinisenyo upang pamahalaan ang libo-libo ng mga file, ilang daang kamukha kung ano ang mayroon kami normal sa isang telepono o tablet.
Una sa lahat, simulan lamang ang server at maghintay para sa katapusan ng initialization proseso. Kung ikaw ay sa Wifi o sa Mobile network maaari mong suriin ang katayuan at ang mga URL upang subukan ito. Fort karamihan ng mga tao ang server ay hindi naa-access mula sa Mobile network. Maaari mong suriin muna kung ano ang iyong server ay namamahagi sa isang pagturo web browser sa lokal na URL pagkatapos ng pagpunta sa labas ng bintana server (ang tunay na server ay tumatakbo sa background). Ito rin ay posible na gamitin ang IPv6 loopback address upang ma-access ang pahina ng HTML mula sa iyong browser na may isang URL tulad ng "http://[::1]:8192".
Bilang ikalawang hakbang, maaari mong gamitin ang configuration server upang baguhin ang pangalan ng iyong server at marahil iakma ang laki ng font sa iyong wika at aparato.
Ang susunod na hakbang ay binubuo sa pagtukoy ng isang username at password bilang administrator na may access sa lahat ng mga kategorya.
Kapag ito gumagana, maaari mong tukuyin ang mga karagdagang mga pangalan ng user na may access sa mga tiyak na mga kategorya.
At sa wakas maaari mong tukuyin ang "port forwarding" kapag ikaw ay konektado sa iyong home Wifi upang ma-access mula sa Internet. Kung ikaw ay gumagamit ang buong application gamit UPnP suporta, ikaw lang ay upang tukuyin ang isang non null port alias sa configuration at i-check sa console kung ito gumagana. Gamit ang libreng application mayroon kang upang i-configure nang manu-mano ang iyong ADSL router. Kapag ito asta mabuti maaari mong subukan ito mula sa bahay sa anumang web browser mayroon kang, gamit ang isang libreng pampublikong Web proxy na may javascript support.
HTTPS bagaman suportado, mukhang hindi na ang pinakamahusay para sa normal na mga gumagamit dahil sa pagiging kumplikado upang gamitin ito sa mga smartphone at sa mahihirap performances kumpara sa simpleng HTTP.
Kapag port pagpasa at authentication ay nagtatrabaho, maaari mong gamitin ang "club" na opsyon upang maging madaling ma-access sa Internet, pag-publish ng iyong data sa www.ddcs.re. Upang subukan ang iyong sariling server ay nangangailangan ng paggamit ng isang Web proxy dahil ang iyong sariling panlabas na IP address ay hindi mapupuntahan mula sa iyong Wifi network. Ang opsyon na ito permit upang maiwasan ang pamamahagi ng isang pagbabago ng URL na may mga IP address at port number, lamang ng pag-click sa kanang server line tinukoy sa pamamagitan ng iyong pangalan ng server, isang maliit na paglalarawan ng pangungusap at ang isa sa iyong imahe bilang icon.
Ang UPnP suporta ay ibinigay sa pamamagitan ng Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, Switzerland), at ang Http Server ay binuo sa tuktok ng NanoHTTPD bersyon 1.25, Copyright 2001,2005-2012 Jarno Elonen at 2010 Konstantinos Togias. Kaya ang application na ito ay naglalaman ng LGPL software. Parehong mga binagong bersyon, hindi katutubong code. Ang TelealCling library ay lamang ng isang jar file na binuo na may ilang mga pagbabago na kinakailangan sa pamamagitan ng mga application mula sa cling-core, cling-support (1.0.5) at teleal-common (1.0.14) jar file ... NanoHttpd ay nabago upang suportahan ang "HEAD" pamamaraan, upang idagdag ang DLNA mga HTTP header, hiling na pag-log at upang magbigay ng paunang home page. Ang source code ay magagamit bilang mga maipapatupad na.
Ang lahat ng mga emoticon na ginamit sa mga komento ay dinisenyo at ginawa sa pamamagitan ng Enrico Gollnow (Erni). Bisitahin ang kanyang website upang makahanap ng higit pang impormasyon tungkol sa kanya at sa kanyang mga smileys (http://www.gomotes.com).
Ang mga nakagawiang pag-encrypt ng password ay gumagamit ng jsbn library Tom Wu ng (Javascript BigInteger at RSA) sa web gilid ng browser at ang SpongyCastle java library sa server side.
Ang application na ito ay gumagamit ng JmDNS, isang pagpapatupad ng multi-cast DNS sa Java para sa pagtuklas ng serbisyo at pagpaparehistro. Ang aklatan na ito ay ganap na nakakaapekto sa Bonjour protocol ng Apple. Ang lahat ng aking pasalamat kay Arthur van Hoff, Rick Blair at Kai Kreuzer, para sa mahusay na library na lisensyado sa ilalim ng Apache License, Bersyon 2.0.
Ang application na ito ay gumagamit ng HTML5 video player na tinatawag na Playr na binuo ni Julien 'delphiki' Villetorte gdelphiki@gmail.com sa ilalim ng MIT License, ang lahat ng aking pasasalamat sa magandang trabaho at pahintulot na gamitin ito.
Gumagamit kami ng PDF.JS upang ipakita ang mga PDF file sa pamamagitan ng WebView. Ang proyektong Open Source na ito ay napapailalim sa isang Apache Version 2 na lisensya. Ang PDF.js (https://mozilla.github.io/pdf.js/) ay isang Portable Document Format (PDF) viewer na binuo gamit ang HTML5. Ang PDF.js ay hinihimok ng komunidad at sinusuportahan ng Mozilla.
Ang epubjs-reader package (https://github.com/futurepress/epubjs-reader) ay ginagamit para sa mga epub na eBook at ang mga aklat ay ipinapakita sa isang WebView. Available ang software na ito sa pamamagitan ng Lisensya ng MIT.
Ginagamit na namin ngayon ang Acme4J bilang Java Client (https://shredzone.org) para sa _Automatic Certificate Management Environment_ (ACME) protocol gaya ng tinukoy sa RFC 8555 (https://tools.ietf.org/html/rfc8555 ). Ang ACME ay isang protocol na magagamit ng isang awtoridad sa sertipiko (CA) at isang aplikante upang i-automate ang proseso ng pag-verify at pagbibigay ng sertipiko. Ito ay isang independiyenteng open source na pagpapatupad na hindi kaakibat o ineendorso ng Let's Encrypt.
Kailangan ng Acme4J ang Jose4j library (https://bitbucket.org/b_c/jose4j/wiki/Home) na isang matatag at madaling gamitin na open source na pagpapatupad ng JSON Web Token (JWT) at ang JOSE specification suite.
Ang dalawang pangunahing mga bahagi ay ang mga server at ang client, at, pagkatapos ng pag-install, mayroon kang dalawang mga icon sa iyong desktop.
Nagsisimula ang server ng isang mahabang tumakbo serbisyo na kung saan ay sa katunayan, ang server real Media pagbibigay UPnP at serbisyo ng HTTP. Ang serbisyong ito ay tumatakbo sa background, isang maliit na icon lang abiso ay nakatakda sa taskbar ng Android. Isang mahalagang subtask ng server, ay ang configuration. Sa pamamagitan ng default na ang pag-export ang lahat ng iyong data ng server mga file sa lokal na Wifi network. Maaari kang pumili ng / tanggalin ang pagkapili sa mga file sa pamamagitan ng pag-configure.
Ang ibinahagi sa pamamagitan ng mga server ng UPnP natagpuan sa lokal na network ang (Wifi) data proseso ng client. Ito ay may bilang subtask isang Mediaplayer para sa pagpapakita mp4, WebM o 3gpp video at nakikinig sa mga mp3, ogg o m4a file na audio, isang dialog window Webview para sa pagpapakita ng mga larawan. Bilang karagdagan, ang isang serbisyo sa background masisimulan para sa pag-download ng mga file mula sa server. Kapag sinimulan bago ang server, ang client ang initialize ang serbisyo UPnP ngunit walang namamahagi ng mga file ng data, isang uri ng laman ang server. Ang serbisyong ito ay kailangan upang makakuha ng access sa iba pang mga UPnP server.
Sa mga setting ng system, at pagkatapos advanced na mga setting, maaari mong mahanap manager ng baterya. Upang panatilihin ang mga server up at tumatakbo permanente, dapat mong piliin ang pagganap para sa mga plano ng kapangyarihan, at i-activate ang app na ito sa protektadong apps at sa kapangyarihan-intensive apps.
Kung magagawa dapat mong panatilihin ang iyong WiFi aktibo kapag ang iyong aparato ay natutulog at ang server ay tumatakbo, at sa karagdagan, kung ang iyong aparato ay may isang nakapaloob DLNA stack, hindi ka dapat hanapin ang "malapit na mga aparato" sa mga setting ng system.
ang server ay nangangailangan ng access sa mga file system at upang basahin ang mga setting ng telepono para sa pag-detect ng mga pagbabago ng estado tulad ng sa Wifi o kung paghahatid ng data ay aktibo kung nakakonekta sa mobile network. Opsyonal ang server ay maaaring magpadala ng SMS kapag ang panlabas na IP address ay nagbago (na opsyon sa configuration) at ang country code sa pamamagitan ACCESS_COARSE_LOCATION, (Hindi isang tumpak na lokasyon lamang ang dalawang titik na code ng bansa). ang client programa ay gumagamit ng pahintulot na magsulat sa panlabas na storage para sa pag-save-download na file, at ang record audio pahintulot para sa pagpapakita ng curves kapag nakikinig sa musika.
Upang mag-publish ng mga file sa Internet gamit ang iyong i-export ito server, mayroon kang i-configure ang aliasing port HTTP server sa iyong ADSL router. UPnP protocol ay hindi magagamit sa Internet, tanging ang HTTP. Ang bilang default na port ay 8192 (maaari mong baguhin ito sa pamamagitan ng configuration), at isang alias port para sa pampublikong network, dapat na ibinigay sa ADSL router na nauugnay sa Wifi IP address ng i-export ito server. Ang default na panlabas na numero ng port sa configuration ay 0, ngunit maaari mong itakda ano ang gusto mo tulad ng 8192 o 80. Ang URL na gagamitin upang ma-access ang iyong server, ay ibinibigay sa kanang tuktok na bahagi ng kontrol ng server window.
Ang aking Web server ay sumusuporta sa HTTPS na may mga self-signed na certificate sa loob ng maraming taon, ngunit, bagama't ito ay gumagana, ang ganitong paraan ay nagbibigay ng mga problema at mga mensahe ng error. Iyon ang dahilan kung bakit, nagpasya akong ipatupad ang protocol ng Automatic Certificate Management Environment_ (ACME), upang makakuha at mapanatili ang mga karaniwang X509 na certificate.
Ang protocol ng ACME ay may ilang mga teknikal na kinakailangan, hindi ito magagamit para sa lahat. Upang magamit ang protocol na ito, kailangan mo ng nakapirming pangalan ng DNS sa iyong panlabas na IP address. Ang X509 certificate ay dapat itakda lamang sa isang pangalan ng DNS hindi sa isang IP address.
Upang makuha ang certificate mula sa Let's Encrypt, kailangan mong gumamit ng HTTP server na may karaniwang port number (80) sa panlabas na pangalan ng DNS na ito. Sa aking aplikasyon, makukuha mo lang ang certificate sa isang server na tumatakbo na may HTTP external port alias na nakatakda sa "80". Isang server lang ang makakagamit ng value na ito sa iyong home Wi-Fi network. Kapag mayroon kang valid na certificate, maaari mong gamitin ang default na port ng HTTPS na "443" sa isa sa iyong mga Web server na itinakda bilang "alias port." Ngunit upang maiwasang "i-root" ang iyong device dapat kang gumamit ng mga port sa itaas ng 1024 bilang "lokal" na mga numero ng port sa pamamagitan ng sample na 8080 para sa HTTP at 8443 para sa HTTPS.
Ang panel ng "configuration" ay binago upang suportahan ang mga port alias para sa parehong HTTP at HTTPS protocol, at bilang karagdagan maaari kang magbigay ng pangalan ng DNS na alam mong gumagana, para sa iyong panlabas na IP address Ang pangalang ito ay tutukuyin sa iyong X509 certificate bilang karagdagan sa pangalan ng iyong network provider kung mayroon ka nito. Awtomatikong ibinabahagi ang certificate sa iba pang mga export-it na server na tumatakbo sa parehong Wi-Fi network, na nagpapahintulot na gumamit ng HTTPS sa Internet ngunit sa iba pang mga value ng port alias.