
云存储使您不仅可以存储数据,还可以在NAS中与它们进行协作。
可能的解决方案
云服务有多个选项:NextCloud,Seafile,Pydio等...
其中一些在下面考虑。
云服务的实现。
用PHP / Javascript实现。
能力:
- 通过从云存储库安装应用程序可以扩展功能。
- 与Collabora和OnlyOffice的办公室集成在一起。
- 可以使用现有的存储库,例如FTP,Swift,S3,Dropbox等,
在它们和本地云之间共享数据。 - 客户端上的加密。
- 通过电子邮件向外部用户提供文件的能力。
- 文件操作自动化(例如,自动添加标签)。
- LDAP
- 有一个音频播放器,一个音乐收藏,一个PDF阅读器插件库。
- 与Zimbra集成。
- 有日历,任务列表,文本编辑器等。
- 防病毒和防御勒索软件。
- 两因素身份验证。
- 冒充其他用户的能力(用于调试目的)。

叉OwnCloud。 用PHP / Javascript实现。
能力:
- 使用常规目录结构或WebDAV进行文件存储。
- 有NextCloud Talk,通过它可以进行视频通话和视频会议。
- 运行Windows(Windows XP,Vista,7和8),Mac OS X(10.6和更高版本)或Linux的客户端之间的同步。
- 与移动设备同步。
- 日历(也类似于CalDAV)。
- 任务计划程序。
- 通讯簿(与CardDAV相同)。
- 流媒体(由Ampache使用)。
- 它支持不同的授权提供程序:LDAP,OpenID,Shibboleth。
- 两因素授权。
- 在组之间共享内容或使用公共URL。 调整规则。
- 具有语法突出显示和折叠功能的在线文本编辑器。 宣布支持LibreOffice编辑器的在线版本。
- 书签
- URL缩短机制。
- 照相馆
- PDF查看器(使用PDF.js)
- 与Collabora和OnlyOffice集成。
- 记录模块。
- 能够创建自己的网站(在PicoCMS中)。
- 与Outlook和Thunderbird集成。
- Gnome中的客户集成。
- 能够使用外部存储。
- 全文搜索。
- 与防病毒软件集成。
在C#中实现。
能力:
- 版本控制
- 客户端上的加密。
- 多个用户之间的透明同步:远程更改将出现在SparkleShare专用的本地目录中。
特点:

用C / Javascript实现。
能力:
- 可以将文件组织到可以在设备之间同步的库中。
- 有一个客户端允许您创建映射到云的本地“磁盘”。
- 内置加密。 所有文件均由客户端加密,并以加密方式存储在云中。
- 移动设备支持。
- HTTS / TLS加密。
- 有LDAP。
- 微调权限。
- 版本控制文件。
- 能够创建目录快照,然后可以将其返回。
- 重复数据删除。
- 支持文件锁定。
- 在线共同编辑文件。
- 防病毒软件。
- 微调权限。
- 通过rsync定期备份。
- WebDAV
- REST API
- 与Collabora集成的能力。
特点:
- 快速且不需要资源。
- 它被认为是可靠的。
- 仅付费Pro版本支持设置子目录的权限。
- 与防病毒软件集成-仅在Pro版本中。
- 审核-仅限于专业版。
- 全文搜索-仅在Pro版本中。
- 与S3和Ceph集成-仅在Pro版本中。
- 在线查看Doc / PPT / Excel-仅在Pro版本中。

用PHP / Javascript实现。
能力:
- 文件不仅在用户之间共享,而且在Pydio的多个实例之间共享。
- SSL / TLS加密。
- WebDAV
- 能够创建多个工作区。
- 与外部用户共享文件,并进行微调共享(例如,直接链接,密码等)。
- 内置的Collabora办公室。
- 预览和编辑图像。
- 有一个内置的音频和视频播放器。

用PHP / Javascript实现。
能力:
- 既可以在特定用户之间,也可以在组之间共享文件。
- 有关文件操作的完整报告。
- 外部用户上传文件的能力(出于共享目的,例如,应用错误报告)。

能力:
- 通过对现有文件进行重复数据删除和更改(而不是覆盖整个文件)来节省存储空间和文件上传时间。
- 可定制的多平台同步。
用于同步的DropBox创建一个特殊的文件夹,在其中必须放置所有同步的文件。 SpiderOak可以与任何目录一起使用。 - 保存所有历史版本的文件和已删除的文件
- 使用所谓的ShareRooms共享文件夹,该文件夹设置密码。
在本地计算机上更新的文件将在存储库中自动更新。 通过RSS通知用户更改。 - 从连接到Internet的任何设备接收文件。
- 基于“零知识”原理的完全数据加密。
- 支持无限数量的设备。
- 客户端数据加密。
- 两因素身份验证。
特点:
封闭的专有系统。
鉴于该软件是付费的且部分关闭,因此不包括其使用。
安装NextCloud
最初,人们希望使用Seafile:服务器部分是用C实现的,它高效且稳定。 但是事实证明,免费版本不具备所有功能。
因此,我尝试了Nextcloud并感到满意。 它提供了更多功能,并且完全免费。
您可以在此处查看其在演示模式下的工作方式。
以下是云存储和系统之间的常用接口:
/tank0/apps/cloud/nextcloud
云服务存储。/tank0/apps/onlyoffice
办公室数据。https://cloud.NAS.cloudns.cc
://cloud.NAS.cloudns.cc-WEB云服务界面。
因为 NextCloud配置非常繁琐,由几个文件组成,在此不再列出。
您需要的所有内容都可以在Github上的存储库中找到。
SeaFile的配置也在那里 。
首先安装并启动NextCloud。
为此,将配置复制到/tank0/docker/services/nextcloud
并执行:
# docker-compose up -d
将基于Nextcloud 13.0.7构建新映像。 如果要更改基本映像的版本,请在app/Dockerfile
。 我使用的是版本15,但是值得注意的是,许多插件(例如ocDownloader加载程序和便笺)在其中均无法使用,并且我还没有恢复OnlyOffice的功能。
我没有发现任何主要差异或性能上的明显提高。
下面我相信您正在使用13+版本。
接下来,转到NextCloud并在右上角的菜单中选择“应用程序”,完成必要插件的安装。

必填项:
- LDAP用户和组后端 -与LDAP配对。
- 外部存储支持 -支持外部存储。 为了集成NextCloud和共享文件,以及与外部云存储配对,将进一步需要它。 在另一篇文章中,我将讨论设置外部存储的问题。
- ocDownloader-文件下载器。 扩展云的功能。 Docker映像经过专门重建,因此可以正常工作。
- ONLYOFFICE-办公室整合。 没有该应用程序,文档文件将无法在云中打开。
- 端到端加密 -客户端上的端到端加密。 如果多个用户使用云,则需要一个插件来方便地确保其文件的安全性。
所需的应用程序:
- 暴力设置 -防止选择凭据。 NextCloud正在浏览Internet,因此最好进行安装。
- 模拟 -允许管理员与其他用户一起登录。 对于调试和故障排除很有用。
- 交谈 -视频聊天。
- 日历 -不言而喻,可让您将日历保存在云中。
- 文件访问控制 -允许用户基于标签和规则限制对文件和目录的访问。
- 校验和 -允许您计算和查看文件的校验和。
- 外部站点 -在顶部面板上创建指向任意站点的链接。
容器特点:
- 已安装Aria2引导程序。
- 已安装Youtube-DL Bootloader。
- 安装了inotify工具。
- 增加了PHP的内存限制。
- 将Web服务器配置为与LDAP更好地配合使用。
我注意到,如果您安装版本13+,但是决定升级到版本15,则可以使用occ实用程序执行此操作以及执行更多操作。
LDAP
配置LDAP并非易事,因为我将告诉您更多信息。
转到“设置->与LDAP / AD集成”。
添加具有端口389的服务器172.21.0.1。
登录名: cn=admin,dc=nas,dc=nas
。
NextCloud可以管理LDAP数据库中的用户,为此需要管理员。

按下“检查DN配置”按钮,如果验证指示灯为绿色,则按下“下一步”按钮。
每个用户都有一个inetOrgPerson
属性,并且是users_cloud
组的成员。
过滤器将如下所示:
(&(|(objectclass=inetOrgPerson))(|(memberof=cn=users_cloud,ou=groups,dc=nas,dc=nas)))
单击“检查设置数据库并重新计数用户”,如果一切正确,则应显示用户数。 单击下一步。
在下一页上,将配置一个用户过滤器,NextCloud将通过该过滤器搜索它们。
筛选条件:
(&(objectclass=inetOrgPerson)(uid=%uid))
在此页面上,您需要输入用户的登录名,然后单击“检查设置”。
上次“下一个”。
然后单击“高级”,并检查“组树基数”字段是否等于“用户树基数”字段,并具有值dc=nas,dc=nas
。
返回到组并选中groupOfUniqueNames
旁边的“仅这些groupOfUniqueNames
类”框。
这里的最终过滤器是这样的:
(&(|(objectclass=groupOfUniqueNames)))
我没有设置“仅来自这些组”字段,因为 我想在NextCloud界面中看到所有用户,而那些不是users_cloud
组users_cloud
在上一阶段被筛选器users_cloud
掉了。
Onlyoffice

OnlyOffice是一个出色的跨平台办公套件,支持MS Office文档。 它是免费开放的,与LibreOffice一样 ,也可以作为服务器工作。
但是同时,对原始格式的支持实现得更好,几乎就像MS的原始办公室一样,它更稳定,界面也更周到。
它还与NextCloud集成在一起 。
顺便说一句,有一个桌面版的OnlyOffice,包括Linux。 总的来说,在沉重而不稳定的Collabora(这是LibreOffice)的折磨下,我选择了OnlyOffice,到目前为止,我对此感到非常满意。
扰流板下方的Github和更低版本提供 OnlyOffice配置。
Github也有Collabora的配置 。
/tank0/docker/services/office/onlyoffice/docker-compose.yml version: '2' # https://helpcenter.onlyoffice.com/ru/server/docker/document/docker-installation.aspx networks: onlyoffice: driver: 'bridge' docker0: external: name: docker0 services: onlyoffice-redis: container_name: onlyoffice-redis image: redis restart: always networks: - onlyoffice expose: - '6379' onlyoffice-rabbitmq: container_name: onlyoffice-rabbitmq image: rabbitmq restart: always networks: - onlyoffice expose: - '5672' onlyoffice-postgresql: container_name: onlyoffice-postgresql image: postgres environment: - POSTGRES_DB=onlyoffice - POSTGRES_USER=onlyoffice networks: - onlyoffice restart: always expose: - '5432' volumes: - /tank0/apps/onlyoffice/postgresql_data:/var/lib/postgresql onlyoffice-documentserver-data: container_name: onlyoffice-documentserver-data image: onlyoffice/documentserver:latest environment: - ONLYOFFICE_DATA_CONTAINER=true - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql - POSTGRESQL_SERVER_PORT=5432 - POSTGRESQL_SERVER_DB_NAME=onlyoffice - POSTGRESQL_SERVER_USER=onlyoffice - RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq - REDIS_SERVER_HOST=onlyoffice-redis - REDIS_SERVER_PORT=6379 stdin_open: true restart: always networks: - onlyoffice volumes: - /tank0/apps/onlyoffice/document-server-data/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server-data/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server-data/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files - /tank0/apps/onlyoffice/document-server-data/files:/var/www/onlyoffice/documentserver-example/public/files - /usr/share/fonts onlyoffice-documentserver: image: onlyoffice/documentserver:latest depends_on: - onlyoffice-postgresql - onlyoffice-redis - onlyoffice-rabbitmq - onlyoffice-documentserver-data environment: - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data - BALANCE=uri depth 3 - EXCLUDE_PORTS=443 - HTTP_CHECK=GET /healthcheck - EXTRA_SETTINGS=http-check expect string true - JWT_ENABLED=true - JWT_SECRET=<JWT_SECRET_TOKEN> # Uncomment the string below to redirect HTTP request to HTTPS request. #- FORCE_SSL=true - VIRTUAL_HOST=office.* - VIRTUAL_PORT=80 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc stdin_open: true restart: always networks: - onlyoffice - docker0 expose: - '80' volumes: - /tank0/apps/onlyoffice/document-server/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server/lib:/var/lib/onlyoffice - /tank0/apps/onlyoffice/document-server/db:/var/lib/postgresql volumes_from: - onlyoffice-documentserver-data
我将解释一些要点:
- 您需要将<JWT_SECRET_TOKEN>更改为您自己的名称,并更改DNS区域名称中的NAS。
- 这里不需要包括HTTPS,因为尽管可以从外部看到办公室,但可以通过反向代理与之交换,反向代理仅通过HTTPS与用户合作。 这就是NAS体系结构的构建方式。
现在您需要提高办公室:
docker-compose up -d
而且,如果一切正常,则以下页面将位于office.NAS.cloudns.cc:

然后,在NextCloud设置中,您需要选择“管理-> ONLYOFFICE”项,并在前两个字段中输入文档服务器地址: https://office.NAS.cloudns.cc/
://office.NAS.cloudns.cc/和您的JWT令牌。
在第三个字段中,输入云地址。
例如,可以在此处生成JWT令牌。
如果服务器配置正确,则用于办公室文档的其他项目将出现在用于在云中创建文档的菜单中,并且.docx
文件将在办公室中打开。
结论
云存储是用户自身与其他服务之间进行交互的中央链接。
NextCloud担任此职务非常方便并且具有广泛的功能。
在版本之间进行更新的过程中,它具有自己的功能,但通常,建议使用此存储库。