如何创建具有亚马逊无限存储丛媒体服务器

丛媒体服务器

本教程描述了创建远程所需的步骤 (或地方) Plex 媒体服务器, 无限亚马逊云存储加密文件的完整性时.

系统必备组件

  • 有互联网连接配置并激活了.
  • 服务器 / vps 的保险丝 (我使用 hetnzer 在线和 ovh kimsufi), 注意到 OpenVZ VPS, 检查保险丝的可用性.
  • SSH 访问

制备

第一次, 您需要安装丛, 请访问 下载页面 , 复制到Ubuntu和wget的链接在你的终端. 在我的示例, 它 ’ s 版 1.3.3 丛.

Cd ~
.
Sudo dpkg-i plexmediaserver_1. *
要完成丛配置远程服务器上, 您需要连接它通过 ssh 隧道 32400 端口, 否则它将不可能完成的丛安装, 一旦实现了的隧道,请访问 http : // 本地主机: 32400

为简单起见, 它是用户 将使用, 它简化了管理的权利.

 Sudo 苏 Passwd 丛 Adduser 丛 sudo

另外, 您可以禁用丛 SSH 访问.

 纳米 / 等 / ssh / sshd_config

并在其末尾增加:

DenyUsers 丛

然后重新启动 ssh:

服务 ssh 重新启动

文件

一次重新连接与丛 (苏丛), 我们将创建所需的文件, 详细的文件是可用 在这里 .

苏丛 Sudo mkdir / 首页 / 丛 /
Sudo chown 丛 / 首页 / 丛 /
Mkdir /home/plex/.local-sorted/ Mkdir / 首页 / 丛 / 本地排序 /
Mkdir /home/plex/.acd-sorted/ Mkdir / 首页 / 丛 / acd 排序 /
Mkdir / 首页 / 丛 / 排序 /
Mkdir / 首页 / 丛 / 日志 /

数据包

然后我们安装必需的软件包组:

Sudo apt-get 来安装 python 保险丝 python 保险丝 python3 setuptools python3 appdirs python3 dateutil python3 请求 python3 sqlalchemy git Sudo easy_install3-U pip

Acd_cli

一旦这项工作完成, 我们意识到的安装 ACD_CLI 这是一个命令行界面,装入云驱动器作为本地文件夹.

Sudo pip3 安装 git + https: //github.com/yadayada/acd_cli.git

我们然后检查一切正常:

Acd_cli 同步

这一步会问你要使 acd_cli 来标识与亚马逊的文件 oauth_data.

第一步被停止时它必须连接上 https://tensile-runway-92512.appspot.com/ , 致电您当地的浏览器, 下载 oauth_data, 打开与本地驱动器. 将数据复制和连接到第二个 ssh 终端和创建与纳米:

纳米 /var/lib/plexmediaserver/.cache/acd_cli/oauth_data

将数据从以前下载的文件粘贴, 将它保存并将其返回到你以前 ssh. 继续按照 acd_cli 说明.

一次完成, 我们可以解决 主要关键杜邦: 文件夹安装, 加密和同步.

创建一个丛媒体服务器与亚马逊无限的存储

要点

原理很简单:

  • / 本地排序 , 这不是加密本地文件或文件,您的媒体.
  • 其加密的版本 encfs /.本地排序 这是将在亚马逊网站上传的文件夹
  • /.acd 排序 这是装载点云文件, 这被安装加密.
  • / acd 排序 是的解密的远程文件夹.
  • / 排序 , 通过 unionfs 文件夹, 可以 “合并” 本地 acd 排序和排序, 这将使用由丛的文件夹.

我们现在生成 加密密钥 与 encfs, 势在必行 * * 一旦完成这些步骤, 你应该保持 备份 加密密钥的.

要装载 encfs, 简单地启动

通过 Encfs /home/plex/.local-sorted / 首页 / 丛 / 本地排序

通过 Encfs 将提示您输入的加密设置, 默认设置是正确的, 和密码, 您还将需要保留.

一次完成, 在放入任何文件 * / 本地排序 * 将出现在加密 * /. 本地排序 *.

我们然后将加密密钥:

Fusermount-u / 首页 / 丛 / 本地排序 Mv /home/plex/.local-sorted/.encfs6.xml /home/plex/encfs.xml

从现在开始, 要通过 encfs 文件系统装载, 它将需要规定存在配置文件.

ENCFS6_CONFIG = '/ 首页 / 丛 / encfs.xml' encfs /首页/丛/.本地排序 / 首页 / 丛 / 本地排序

让 ’ s 测试是否行得通:

Ls /home/plex/.local-sorted/ # 通常为空触摸 / 首页 / 丛 / 本地排序 / 测试的 Ls /home/plex/.local-sorted/ A 文件与具有无意义的名称应显示.

编辑亚马逊云驱动器

Acd_cli 装载 /home/plex/.acd-sorted/

/home/plex/.acd-sorted/ 现在显示的文件从 / 以云驱动器亚马逊加密的方式.

我们现在挂载 EncFS:

ENCFS6_CONFIG = '/ 首页 / 丛 / encfs.xml' encfs /首页/丛/.acd 排序 / 首页 / 丛 / acd 排序

在亚马逊云存储所以解密文件夹中显示的文件 / acd 排序

上传

用于上传, 有两种方法, 最简单的方法是使用 acd_cli 上载后跟随 acd_cli 同步或 rclone,python 的地穴中,自动装载装载点.

Acd_cli 上传
Acd_cli 上传 /home/plex/.local-sorted/* /
Acd_cli 同步

这种方式,但现在我发现 acd_cli 上载不一致 (与很多错误) 和 acd_cli 不稳定 (频繁的挂载点崩溃)

Rclone

’ S 解决方案我 ’ m 使用. 原则是,如下所示:

我执行屏幕用下面的命令一个 bash 脚本:

选项 移动 删除源文件, 替代 * 副本 * 保持
Rclone 移动-v /home/plex/.local-sorted acd: /

该脚本 :

纳米 /home/plex/.loopreclone.sh

下面的代码粘贴:

#! / 本 · / 因为我在 bash {1..10}
Rclone 移动-v /home/plex/.local-sorted acd: /  
        邮件 -s "上传 $ 我 $ (日期)" // 您的电子邮件 // <<< '更新!'
Done

然后我们渲染脚本可执行:

 Chdmod + x /home/plex/.looprclone.sh

然后,在屏幕中执行, 上传会这样做 10 通过发送电子邮件,在每个循环的结束时间 (要获得关于进步的观念), 它是非常方便的一个非常大的上传它定期更新了当我们下载其个人媒体文件夹中.

若要刷新的文件的列表, 执行:

Acd_cli 同步

但这往往会崩溃的挂载点, 本教程的最后一部分中提供的更加稳定和自动化的解决方案.

UnionFS 熔断器

我们只需执行:

/ 首页 / 丛 / acd 排序 = RO / 首页 / 丛 / 排序 /

这将两个未加密的文件合并成一个单一文件 / 排序 . 这将用于丛. 这已允许丛中添加文件添加到服务器中时,快速的优点 本地排序 / 和当如果是在亚马逊网站的上传, 重新组装本地加密和解密 * / acd 排序, 看不出区别,它将具有相同的安装在 / 排序 .

结论

在这里,你有必要实现自己无限的丛媒体服务器. 这显然是使用的介质的你们合法获得的财产或您个人的电影.

我邀请你来完成本教程由读的已知的问题, 有一些, 特别是那个引起 acd_cli 同步, 其中种植了挂载点,而变得不可访问.

已知的问题和解决方案

崩溃的装配后的同步

主要故障是如上文所述, acd_cli 同步, 其中有计划挂载点的倾向, 这将阻止,只需将 acd_cli 放在 crontab 中.

所以我们 ’ 将使用两个脚本. 第一次, 很简单, 将执行后紧跟一个 python 脚本,将验证是否大会已种植和重新组装如果必要 acd_cli 同步.

纳米 /home/plex/sync.sh

我们坚持下去:

 #! / 本 · / bash
/ Usr / 本地 / 本 · / acd_cli-d 同步 Python3 /home/plex/.automount.py

并使其可由执行 chmod + x .

然后创建。 automount.py 的代码,我修改了脚本但源 在这里 :

导入导入子进程导入 os 日志记录 Logging.basicConfig (文件名 = "acdmount.log", level = logging.INFO, 格式 = '% (asctime) s % (levelname) s %Logging.info ("ACD 安装检查器已启动")
DEVNULL = 打开 (os.devnull, "wb")
#pb = Pushbullet ("推-项目-api键-此处")
# Logging.info ("运行 ACD 同步")
# Subprocess.call (["/ usr / 本地 / 本 · / acd_cli", "同步"], stdin = 无, stdout = DEVNULL)
存在 = os.path.exists ("/ 首页 / 丛 / .acd 排序 /")
如果存在不是真的:
    Logging.warning ("ACD 安装已关闭")
   # 推 = pb.push_note ("ACD 安装下来", "尝试重新启动")
   # Logging.info ("尝试 umont")
   # Subprocess.call (["/ usr / 本地 / 本 · / acd_cli", "乌蒙"], stdin = 无, stdout = DEVNULL)
    Logging.info ("尝试 umont fuser")
    Subprocess.call (["/ 本 · / 福瑟蒙特", "-uz", "/home/plex/.acd-sorted"], stdin = 无, stdout = DEVNULL)
  # Logging.info ("运行 ACD 同步")
  # Subprocess.call (["acd_cli", "同步"], stdin = 无, stdout = DEVNULL)
    Logging.info ("尝试 ACD 安装")
    Subprocess.call (["/ usr / 本地 / 本 · / acd_cli", "安装", "/home/plex/.acd-sorted/"], stdin = 无, stdout = DEVNUL $
# 打印 ("已完成的 ACD 蒙特")
  # 如果 os.path.exists ("/ 首页 / 丛 / .acd 排序 /"):
   # 推 = pb.push_note ("ACD 安装备份", "重新启动成功")
    # Logging.info ("ACD 装载重新启动成功")
 #其他:
  # 打印"所有好"

我们将运行此脚本每 6 通过 cron 分钟 , 每次同步之间的时间至少是 5 分钟.

* / 6 * * * * sh /home/plex/sync.sh “/home/plex/logs/cron.log 2> & 1

重新启动后重新组装

我们将创建一个脚本,允许跟踪这一切通过 cron 启动后.

我们首先创建一个.encfspass 文件将包含只 encfs 密码.

<代码> 纳米 /home/plex/.encfspass </ 代码>

然后 ** mount.sh ** 包含以下代码,以通过执行脚本 ** chmod + x **
 ! / 本 · / sh
/ 本 · / fusermount-乌斯 / 首页 / 丛 / acd 排序
/ 本 · / fusermount-uz /home/plex/.acd-sorted
/ 本 · / fusermount-乌斯 / 首页 / 丛 / 本地排序
/ 本 · / fusermount-uz /home/plex/.local-sorted
/ 本 · / fusermount-乌斯 / 首页 / 丛 / sorted
Acd_cli sync
Acd_cli mount -ro /home/plex/.acd-sorted
ENCFS6_CONFIG = '/ home / 丛 / encfs.xml' encfs --extpass | "猫/家/丛/.恩克普斯帕斯" /home/plex/.acd-sorted / 首页 / 丛 / acd-sorted
ENCFS6_CONFIG = '/ home / 丛 / encfs.xml' encfs --extpass | "猫/家/丛/.恩克普斯帕斯" /home/plex/.local-sorted / 首页 / 丛 / 本地排序
/ 首页 / 丛 / acd 排序 = RO / 首页 / 丛 / 排序 /
退出

并添加一个 cron:

@reboot /home/plex/.mount.sh> /home/plex/logs/mount.log 2> & 1

现在您已成功创建使用亚马逊无限丛媒体服务器云存储. 如果任何你挑战, 你可以删除你在下面的评论.

您可能还喜欢

关于作者: 管理员

留言

您的电子邮件地址将不会发布. 标记必填的字段 *