python 下载/上载文件到Synology群晖

news/2024/11/28 7:37:19/

可以使用现成的库(Synology Wrapper),:

pip install synology-api

也可以使用api,比较麻烦点。

#!/usr/bin/env python
# coding: utf-8# In[50]:from datetime import datetime, timedelta
from shutil import copyfile
from datetime import datetime, timedelta
import time
import openpyxl
import os
import requests
import json# In[2]:server='http://10.101.1.249:5000'# In[3]:dt=datetime.now()+timedelta(days=-1)
file_ex='%02d.%02d' % (dt.month, dt.day)# In[47]:nas_dir='/生产部/1.공통╱共同/生产部每日速报汇总!!!/%d.%02d/' % (dt.year,dt.month)
local_dir='E:/12-速报/'
nas_file='生产速报-%02d.%02d.xlsx' % (dt.month, dt.day)nas_dir_u = '/工务部/生产管理共享/%d月' % dt.month
local_file_u = '工务速报%02d.%02d.xlsx' % (dt.month, dt.day)# In[5]:# 登录
def login():print('登录...')uri=server+'/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=login&account=gw01&passwd=123456&session=FileStation&format=cookie'req=requests.request('GET',uri) if req.json()['success']:return req.json()['data']['sid']else:print('登录失败')return ''# In[61]:def logout():print('注销...')uri=server+'/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=logout&session=FileStation&_sid=' + sidreq=requests.request('GET',uri) print(req.text)# In[9]:# 下载文件
def download():print('下载...')uri=server + r'/webapi/entry.cgi?api=SYNO.FileStation.Download&version=2&method=download&path={path}&mode=open&sid={sid}&&_sid={sid}'uri=uri.format(path=nas_dir+nas_file, sid=sid)headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36','Content-Type': 'application/octet-stream','Content-Disposition': 'attachment'}req=requests.request('GET',uri, headers=headers)if not req.content.startswith(b'<!DOCTYPE html>'):with open(local_dir+nas_file, 'wb') as f:f.write(req.content)else:print('文件:%s 下载失败' % nas_file)# In[45]:# 上传文件def upload():print('上传...')try:with open(os.path.join(local_dir,local_file_u), 'rb') as payload:args = {'path': nas_dir_u,'create_parents': 'true','overwrite': 'true'} files = {'file': (local_file_u, payload, 'application/octet-stream')}      uri=server + r'/webapi/entry.cgi?api=SYNO.FileStation.Upload&version=2&method=upload&_sid=' + sidreq=requests.post(uri, data=args, files=files, verify=True)print(req.json())except Exception as e:print('上传%s出错:%s' % (local_file_u,e))# In[52]:# 模板文件生成
def mycopy():print('拷贝...')file_dir='E:/12-速报/'dt=datetime.now()+timedelta(days=-1)file_ex='%02d.%02d' % (dt.month, dt.day)file_name=file_dir+'工务速报'+file_ex+'.xlsx'try:copyfile(file_dir + '工务速报_template.xlsx', file_name)except IOError as e:print('不能拷贝文件:', e)exit(1)except:print("未预期的错误:", sys.exc_info())exit(1)print('拷贝成功')# 修改数据book=openpyxl.load_workbook(file_name)sheet=book['模板']sheet.title=file_excell_j='%d년  %02d 월 %02d 일' % (dt.year, dt.month, dt.day)sheet['J1']=cell_jbook.save(file_name)# In[ ]:sid=login()# In[63]:# menu
if __name__ == '__main__':menu= '''选择操作:1、生成新速报文件2、下载生产的速报3、上传工务的速报4、退出'''print(menu)cmd = input('请输入1-4,m打印菜单:')while cmd != '4':if cmd == '1':mycopy()if cmd == '2':download()if cmd == '3':upload()if cmd == 'm':print(menu)if cmd == '4':breakcmd = input('请输入1-4,m打印菜单:')logout()# In[ ]:

http://www.ppmy.cn/news/653913.html

相关文章

群晖(Synology)NAS 安装 MongoDB

首先需要在群晖的 Docker 中选择 Image&#xff0c;然后选择添加。 输入 Docker HUB 的地址 在弹出的对话框中输入 Docker Hub 的地址。 MongoDB 的地址为&#xff1a; Docker Hub 然后选择添加。 选择版本和运行 在后续的界面中&#xff0c;要求选择版本&#xff0c;我们选…

synology存储服务器连接

功能&#xff1a;存储实验室学术和项目资料&#xff0c;一种内部存储管理工具 条件&#xff1a;需要与服务器连接在同一个局域网下&#xff08;最好是连接在同一个路由器下&#xff09; 连接方式 电脑连接 打开“我的电脑”点击“计算机” 选择“映射网络驱动器”出现如下界…

Synology搭建Gitea(Docker)

Synology搭建Gitea(Docker) 文章目录 Synology搭建Gitea(Docker)参考增加用户与用户组增加映像安装配置反向代理路由器端口转发 参考 Nas轻量git方案&#xff1a;Docker安装Gitea;群晖(Synology) NAS 如何安装 gitea 增加用户与用户组 为所有Docer创建一个组docker&#xff1b;…

本地搭建私有云盘:安装Synology Assistant 2/5

系列文章 本地搭建私有云盘&#xff1a;虚拟机安装群晖NAS 1/5本地搭建私有云盘&#xff1a;安装Synology Assistant 2/5 本地搭建私有云盘&#xff1a;群晖系统存储空间设置 3/5 本地搭建私有云盘设定&#xff1a;设置群晖共享文件夹以及cpolar 4/5 本地搭建私有云盘设定&…

Synology Drive Client、ShareSync 验证错误

Synology Drive Client、ShareSync 验证错误常见的原因是&#xff1a; 您的连接已从Synology Drive 管理控制台>客户端列表中移除。 透过编辑连线重新进行认证即可修复您的 DSM 密码已更改。 透过编辑连线重新进行认证即可修复您的 DSM 帐户已停用或删除。 请管理员重新启用…

Synology Drive 使用了哪些端口?

Drive的浏览器页面使用的是 5000/5001 DSM 端口 &#xff0c;而同步使用的是 6690 端口。请您确认是否有将您的自定义端口转发到 6690 上。 DSM 服务使用的网络端口检查 TCP 端口的状态

群晖系统怎样启用dhcp服务器,如何使用 Synology NAS 执行 PXE

总览 Synology NAS 支持 TFTP 和 Synology 服务,为预启动执行环境 (PXE) 设置中的相当关键的角色。通过 PXE,客户端设备可使用存储在 Synology NAS 中的网络引导程序(而不是存储在本地存储的操作系统),通过网络来启动客户端设备。这在大规模部署环境下希望集中化和简化管理的…

synology

入手群晖261J无法正常安装DSM 错误代码38 求教各位恶魔https://www.chiphell.com/thread-1599081-1-1.html(出处: Chiphell - 分享与交流用户体验) 转载于:https://www.cnblogs.com/itzxy/p/7581058.html