如何附加NextCloud的oneDrive存储?

Cloud storage

1 基础知识

“files_external_onedrive”插件允许NextCloud扩展微软的oneDrive存储,以下是实现的详细步骤。

2 最佳实践

2.1 环境准备

2.1.1 部署NextCloud环境

如果你没有NextCloud环境,烦请参阅如下文档部署,

如何部署CentOS 8.x nextCloud?

2.1.2 部署composer

cd ~
wget https://getcomposer.org/download/2.0.12/composer.phar
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

以上是简述命令,详细可以参阅以下文档,

如何使用composer?


安装完毕后,可以使用如下命令测试,

cd /var/www/nextcloud/
sudo -u apache /usr/local/bin/composer -V

可见如下输出,

Composer version 2.0.12 2021-04-01 10:14:59

2.1.3 下载安装包

cd ~
wget https://github.com/hevelius/files_external_onedrive/archive/refs/tags/v1.1.0.tar.gz -O files_external_onedrive-v1.1.0.tar.gz

2.1.4 解压安装包

cd ~
tar -xf files_external_onedrive-v1.1.0.tar.gz

2.2 配置oneDrive存储验证接口

2.2.1 登录微软的Azure云

https://portal.azure.com/

2.2.2 注册新应用并复制ID

单击页面菜单【Azure Active Directory】->【App registrations】->【New registration】
填入如下参数,
Name:my-OneDrive
Supported account types:Accounts in any organizational directory (Any Azure AD directory – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)
Redirect URI (optional):
Web
https://nextcloud.cmdschool.org/index.php/settings/user/externalstorages
单击【Register】
从新弹出的页面单击【Copy to clipboard】复制“Application(client) ID”

2.2.3 配置应用安全并复制密码

单击页面菜单【Certificates & secrets】->【Client secrets】->【New client secret】
填入如下参数,
Description:my-OneDrive password
Expires: 24 months
单击【Add】创建客户端密码
从新弹出的页面单击【Copy to clipboard】得到密码的“Value”
然后,假设之前两个步骤得到的值如下,
Client ID: 98b5b4d7-a862-4dfb-9d2c-6bb78dcb8774
Client secret: X9b~atJb-6.Wl52aeJ.OEOLi86eqpu_MYb

2.2.4 配置应用权限

单击页面菜单【API permissions】->【Add a permission】->【Microsoft APIs】->【Microsoft Graph】->【Delgate permissions】
勾选以下三个权限,
User.Read
Files.ReadWrite.All
offline_access
单击【Add permissions】
单击【Refresh】
另外,如果有如下提示请注意处理,否则验证无法通过,
Starting November 9th, 2020 end users will no longer be able to grant consent to newly registered multitenant apps without verified publishers. Add MPN ID to verify publisher

2.3 部署控件

2.3.1 部署安装程序

mv files_external_onedrive-1.1.0/ /var/www/nextcloud/apps/files_external_onedrive
chown apache:apache -R /var/www/nextcloud/apps/files_external_onedrive/
chmod 755 -R /var/www/nextcloud/apps/files_external_onedrive/
cd /var/www/nextcloud/apps/files_external_onedrive/
sudo -u apache /usr/local/bin/composer install

2.3.2 启用扩展模块

sudo -u apache php /var/www/nextcloud/occ app:enable files_external
sudo -u apache php /var/www/nextcloud/occ app:enable files_external_onedrive

然后,请使用如下命令确认模块已经启用,

sudo -u apache php /var/www/nextcloud/occ app:list

如果需要执行反向操作,请使用如下命令,

sudo -u apache php /var/www/nextcloud/occ app:disable files_external
sudo -u apache php /var/www/nextcloud/occ app:disable files_external_onedrive

2.3.3 启用扩展模块

https://nextcloud.cmdschool.org
以管理员身份登录nextCloud,
单击【admin】 -> 【Settings】 -> 【Administration】-> 【External storages】
在“Allow users to mount external storage”框中勾选【OneDrive】即可

2.4 挂载oneDrive存储

https://nextcloud.cmdschool.org
以普通用户身份登录nextCloud,
单击【admin】 -> 【Settings】 -> 【Personal】-> 【External storages】
在“External storages”框中勾选【OneDrive】
然后填入如下参数,
Client ID: 98b5b4d7-a862-4dfb-9d2c-6bb78dcb8774
Client secret: X9b~atJb-6.Wl52aeJ.OEOLi86eqpu_MYb
单击【Save】即可

参阅文档
======================

官方主页
———–
https://apps.nextcloud.com/apps/files_external_onedrive

GitHub
————-
https://github.com/hevelius/files_external_onedrive

没有评论

发表回复

Cloud storage
如何用命令别名缩写NextCloud的OCC命令?

1 前言 一个问题,一篇文章,一出故事。 NextCloud的occ命令是NextCloud提供的非 …

Cloud storage
如何解决NextCloud OCC命令内存限制错误?

1 前言 一个问题,一篇文章,一出故事。 笔者最近升级NextCloud执行如下OCC命令 sudo …

Cloud storage
如何解决Nextcloud升级Time-out?

1 前言 一个问题,一篇文章,一出故事。 笔者最近升级NextCloud发现如下提示, Step 3 …