如何附加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函数参数到日志?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要调试NextCloud的代码,因为需要监视参数 …

Cloud storage
如何使用Token认证API登录NextCloud?

1 前言 一个问题,一篇文章,一出故事。 笔者最近因为更换域名迁移用户而引发NextCloud客户端 …

Cloud storage
如何将NextCloud用户数据迁移给另一用户?

1 前言 一个问题,一篇文章,一出故事。 笔者发现NextCloud官方提供的如下数据迁移命令不是十 …