AIROBOT系统 之 私人存储 和 DLNA 智能电视云
需求背景
工作多年之后发现有太多的电子资料到处存放。个人电脑是Mac,硬盘都不大,放不了太多东西。并且有时候想随时随地存放一些东西。所有就有了大家一个私有存储的需求
个人休息在家经常喜欢看电影电视剧,所有就有个想法,上班空隙可以下载自己喜欢看的资源,然后晚上或者休息日可以直接在电视上看,这样就想到了通过DLNA服务来和私有云结合起来
效果图
私人存储
PC

手机端


DLNA智能电视




硬件准备

上图是我家的私人机房,是不是很牛逼。哈哈。我们整个系统都搭建在Mini PC(如果只是个人测试可以随便搞个虚拟机就行了)上,非常小。适合放在家里。本人在京东购买的,有需要的可以私聊具体信息。
硬件信息如下
操作系统:Ubuntu 18.04
硬件配置:8G内存 + 1T机械硬盘 + 4个CPU
环境:nginx + fpm
私人云:NextCloud
nextcloud简介
nextcloud 是一个php开发的软件,官网地址:https://nextcloud.com/ 。官网提供app方便移动上传。同时PC端提供了大量的插件方便扩展。
php源码下载地址:https://nextcloud.com/install/# ,下载server端的。
环境配置
#安装nginx
sudo apt-get install nginx #安装php-fpm 和 php 扩展。本人版本是7.2。
sudo apt-get install -y php7.2-fpm php7.2-mbstring php7.2-soap
php7.2-zip php7.2-xmlrpc php7.2-xml php7.2-readline php7.2-opcache
php7.2-mysql php7.2-json php7.2-gd php7.2-curl
php7.2-common php7.2-cli php7.2-cgi #安装数据库
sudo apt-get install mysql-server mysql-client
#nginx 虚拟主机的配置内容
upstream php-handler {
server 127.0.0.1:9001;
}
server {
listen 80;
listen 10000;
server_name www.54php.cn;
root /data/xxxx/yyyy/nextcloud;
index index.php index.html;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
}
然后通过访问域名 第一次会 进入安装页面,大家填写具体信息就好了
配置文件优化
文件存储目录更改,默认存储在源码目录 data 目录。例如你的源码 /data/xxxx/yyyy/nextcloud 。
那么存储目录就是 /data/xxxx/yyyy/nextcloud/data。如下图

为什么要修改存储目录?
我认为不应该把存储的东西 和 源码 放在一起,因为源码部分可以被误删除,所以为了保证数据的安全要隔离所有私人云数据。
通过修改 config/config.php 中的 datadirectory ,例如我的就是
'datadirectory' => '/data/nextcloud_data',
大家注意这个 存放目录,接下来的DLNA 智能电视云就从这里来的。这样我就把存放的文件 和 php源码隔离开了。后面我做备份保证数据安全也好做了。
智能电视云:DLNA
智能电视
现在基本上家家都换上了智能电视,那么什么是智能电视?举个手机的例子,以前我前两个手机都是国产的普通手机,后来进入了智能手机时代。同理 电视也是一样,就是一个安装了操作系统的电视。可以理解为一个显示屏很大的电脑。
安装服务
sudo apt-get install minidlna
配置文件描述和优化
#文件路径 /etc/minidlna.conf
#port 服务端口,默认为8200
#media_dir 媒体目录可以设置多个,如:media_dir=V,/noah/videos(逗号前为类型标识:A音频,P图片,V视频)
#friendly_name 服务名称,在其它设备中看到的名称
#inotify 设置为true,将自动发现媒体目录中的新文件 #我的配置如下
port=8200
friendly_name=NasDLNA #认真看上面的截图,是不是就是显示的名称
inotify=yes
media_dir=V,/data/nextcloud_data/xxxxx/files/movie/bt
media_dir=V,/data/nextcloud_data/xxxxx/files/movie/大视频
重点讲解下 media_dir 和 port 。
port 配置的端口可以通过网页直接访问,会展示一些信息

media_dir 大家看到我配置的路径 是不是就是私人云存储文件的地方。下图是私有云截图

总结
根据上面的操作 ,本人将私人存储 和 智能电视云就都完成了。我就可以在公司,在外面 随时随地的存放东西到家里。家里来亲朋好友了,可以通过电视给大家播放一些视频和图片。
原文地址:AIROBOT系统 之 私人存储 和 DLNA 智能电视云
标签:cloud 私人云 nextcloud dlna 智能电视 airobot
智能推荐
AIROBOT系统 之 私人存储 和 DLNA 智能电视云的更多相关文章
- AIROBOT系统 之 踏浪而来
缘由 为什么要做AIROBOT?其实自从我知道智能家居这个领域之后,就一直想打造一个自己的智能家居控制平台,算是我的一个梦.最开始的项目还是在安居客当时工作的时候做的,项目地址:https://git ...
- AIROBOT系统 之 网络配置
需求背景 在上一个章节我们讲究了私有云的部署,但是会有一个问题,我如果在外面,如何访问家里电脑上部署的私有云服务?其实这个问题在扩大化说 就是 如何可以在家庭网络以外 可以访问到 家庭网络:公网 访问 ...
- 怎样通过 DLNA 将电脑上的媒体投射到智能电视上
DLNA 是一种网络设备间共享媒体的解决方案.从 Windows 7 开始就支持 DLNA,现在一些国产智能电视也已经支持 DLNA 了,这就为我们在电脑和电视之间方便地共享多媒体提供了条件. 工具/ ...
- 【开源项目】智能电视及电视盒子的控制应用TVRemoteIME的接口说明
一.APP项目介绍: APP名称:TVRemoteIME 功能说明:安卓智能电视或者安卓盒子的控制应用,可跨屏远程输入.远程遥控(代替遥控器)盒子.盒子应用及文件管理.HTTP/RTMP/MMS网络视 ...
- 远程控制你的智能电视,按键|输入|安装App等都已实现,已开源!
一.序 Hi,大家好,我是承香墨影! 智能电视或者智能盒子,不知道大家了解多少? 这两年各大厂商生产的电视设备,基本上都是搭载的 Android 系统.既然电视本身就是 Android 系统的,我们也 ...
- 安卓Tv开发(一)移动智能电视之焦点控制(触控事件)
前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居,以及可穿戴设备的大量使用,但是这些设备上的开发并不是和传统手机开发一样,特别是焦点控制和用户操作体验风格上有很大的区别,本系列博 ...
- 联发科发布全球首款搭载Android TV的智能电视系统芯片MT5595
联发科发布全球首款搭载Android TV的智能电视系统芯片MT5595 admin 资讯 01-07 1 1月7日消息,联发科宣布与Google共同开发出全世界第一个搭载Android TV操作系统 ...
- 智能电视TV开发---直播视频客户端结构设计和实现
在智能电视TV开发---客户端和服务器通信里面我们实现了客户端和服务端的简单通信,接下来我们做一个简单的客户端界面,来实现手机端来操控智能电视的TV端. 一.存储视频的结构设计 我们在做客户端的时候, ...
- 安卓Tv开发(二)移动智能电视之焦点控制(按键事件)
原文:http://blog.csdn.net/sk719887916/article/details/44781475 skay 前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家 ...
随机推荐
- Web从入门到放弃<7>
从这章开始读<javascript高级程序设计> <1>typeof 返回字符串 / 类型 未定义:undefined 布尔:boolean 字符串:string 数值:num ...
- vue之生命周期钩子函数之运用
一.什么是生命周期钩子函数: 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行 ...
- 非root用户安装java版本
有时候,我们所用的用户并不是root用户,升级java版本,其实是一个非常简单的过程,具体过程如下: 将下载好的tar包进行解压,然后进行配置文件,在命令行敲入 vi ~/.bashrc,在这个文件 ...
- 51nod--1006 最长公共子序列Lcs (动态规划)
题目: 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个 ...
- 【原创】大数据基础之Spark(1)Spark Submit即Spark任务提交过程
Spark2.1.1 一 Spark Submit本地解析 1.1 现象 提交命令: spark-submit --master local[10] --driver-memory 30g --cla ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- 第一章:OEL6.8之虚拟机安装
一.在 Windows 上安装 VMware Workstation 具体安装请参考<VMware Workstation 15 Pro 永久激活密钥 下载> 二.创建虚拟机 1:选 ...
- linux磁盘阵列 逻辑卷管理器
Difficult doesn't mean impossible.It simply meansthat you have to work hard.困难并不代表不可能,它仅仅意味着你必须努力奋斗. ...
- Java Web 中使用ffmpeg实现视频转码、视频截图
Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html ...
- Pygal之世界地图绘制from pygal.i18n import COUNTRIES 报错的解决办法
在<Python编程:从入门到实践>书中的一个项目用到pygal.i18n获取国别码, 问题描述: 在学习<python编程:从入门到精通>的pygal绘制世界地图时,遇到了这 ...