Linux环境搭建NextCloud

NextCloud是什么

	Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷的搭建一套属于自己或者团队的云同步网盘,从而实现跨平台跨设备文件同步,共享,版本控制,团队协做等功能。它的客户端覆盖windows,mac,android,ios,linux等各个平台,也提供了网页端以及webDAV接口,所以你几乎可以在各个设备上方便的访问你的云盘。它可以帮您简单快速在个人,公司电脑,服务器上假设一套属于自己或者团队专属的云同步网盘,所以它是一款开源网盘的绝佳解决方案

开源地址:https://github.com/nextcloud

NextCloud的特点

Nextcloud跨平台支持微软 Windows、macOS 和 Linux 的客户端应用程序,以及适用于 Android 和 apple iOS 操作系统的移动客户端下载地址。

Nextcloud文件提供了一个内置的,具有强大的协作分享功能和桌面、移动和web界面以及WebDAV形式访问。

Nextcloud群件集成了和其他生产力特性,帮助团队更快、更容易地按照您的条件完成工作。

Nextcloud Talk通过集成的屏幕共享和SIP集成,通过浏览器和移动接口提供现场、私人音频/视频会议和文本聊天()。

Nextcloud上的文件存储在一般的目录结构中,并可透过WebDAV访问。

Nextcloud可以透过OpenID或者LDAP来实现用户群组或组群间的读写权限调整,以达到分享文件的目的和利用第三方平台的OAuth2进行接入;

Nextcloud上用户可以使用基于浏览器文本编辑器、书签服务、缩放网址服务、相册以及RSS阅读器与文本查看器;

Nextcloud具有良好的扩展性,可以将文件轻松连线到DropBox、Google云端与Amazon S3中;

基于docker安装NextCloud

1.拉取镜像
docker pull nextcloud

2.创建挂载文件夹
mkdir -p /home/docker/nextcloud

3.运行镜像设置文件挂载
docker run itd --restart always -p 8001:80 --name nextcloud -v /home/docker/nextcloud:/var/www/html nextcloud

访问: http://192.168.5.45:8001
需要再页面进行安装,需要提前准备好mysql和nextcloud库

通过python将文件传递到NextCloud

函数文件 vim nextcloud.py

## 获取文件链接如 /usr/local/nginx/data/data_log/log/2024-05.zip
import requests
import glob
import os
def get_txt_files():
    
    directory = '/usr/local/nginx/data/data_log/log/'
    txt_files = glob.glob(os.path.join(directory, '*.zip'))
    return txt_files

def upload_to_nextcloud(file_path, remote_file_name):
    # Nextcloud WebDAV endpoint
    webdav_url = f"http://192.168.5.45:8001/remote.php/webdav/log/{remote_file_name}"

    # 用户凭证
    username = "root"
    password = "docker211102"

    # 打开文件并准备上传数据
    with open(file_path, 'rb') as file:
        file_data = file.read()

    # 设置请求头,模拟表单上传
    headers = {
        'Content-Type': 'application/octet-stream',
    }

    # 发送PUT请求上传文件
    response = requests.put(webdav_url, data=file_data, headers=headers, auth=(username, password))

    if response.status_code == 201 or response.status_code == 204:
        print(f"File '{file_path}' uploaded to Nextcloud as '{remote_file_name}' successfully.")
    else:
        print(f"Failed to upload file. Status code: {response.status_code}")

主文件 vim file.py

import nextcloud
import os

txt_files = nextcloud.get_txt_files()

for file in txt_files:
	# file:文件链接
	# os.path.basename(file)通过链接获取文件名称
    nextcloud.upload_to_nextcloud(file,os.path.basename(file))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_51711897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值