首页 > 其他分享 >临时命令行传输数据

临时命令行传输数据

时间:2023-12-14 15:15:12浏览次数:28  
标签:http 命令行 临时 self share server 传输数据 file import

起因

服务器为内部服务器,从本机没有直连渠道,只能基于novnc web管理,与本地之间无法互传文件。

思路

从本地启动临时http服务,可以通过命令行上传,下载文件,可以限制非服务器IP无法连接。

本地临时http代码

1、share.py (将服务器公网出口IP填入ALLOWED_IPS )

import http.server
import socketserver
import os
from http import HTTPStatus
import cgi

# 指定允许的IP地址
ALLOWED_IPS = ['192.168.1.2', '192.168.2.66']  # 请替换为实际的IP地址

class CustomHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        # 检查客户端IP是否在允许列表中
        if self.client_address[0] in ALLOWED_IPS:
            super().do_GET()
        else:
            self.send_error(HTTPStatus.FORBIDDEN, "Access denied")

    def do_POST(self):
        # 检查客户端IP
        if self.client_address[0] in ALLOWED_IPS:
            form = cgi.FieldStorage(
                fp=self.rfile, 
                headers=self.headers,
                environ={'REQUEST_METHOD': 'POST'}
            )
            filename = form['file'].filename
            file_data = form['file'].file.read()
            with open(filename, 'wb') as f:
                f.write(file_data)
            self.send_response(HTTPStatus.OK)
            self.end_headers()
            self.wfile.write(b"File uploaded successfully")
        else:
            self.send_error(HTTPStatus.FORBIDDEN, "Access denied")

def run(server_class=http.server.HTTPServer, handler_class=CustomHTTPRequestHandler):
    server_address = ('', 1234)
    httpd = server_class(server_address, handler_class)
    print("Starting httpd server on port 1234")
    httpd.serve_forever()

if __name__ == "__main__":
    run()

2、share.bat

@echo off
setlocal

cd %USERPROFILE%\Desktop

if not exist share (
    mkdir share
)

cd %USERPROFILE%\Desktop\share

cmd /k "python share.py"

endlocal

服务器临时下载上传文件

1、下载文件命令

wget http://xxxx.com:1234/a.zip

2、上传文件命令,其中/path/to/file为要上传的文件路径,可以是相对路径,注意:服务器上已存在同名文件会覆盖。

curl -X POST -F "file=@/path/to/file" http://xxxx.com:1234

标签:http,命令行,临时,self,share,server,传输数据,file,import
From: https://www.cnblogs.com/dwj192/p/17901203.html

相关文章

  • 03C# 从命令行或环境变量读取配置
    前面几篇文章主要讲解读取Json文件,这篇文章讲解如何通过命令行和环境变量读取配置安装Nuget包:Micosoft.Extensions.Configuration.CommandLine(命令行读取)安装Nuget包:Micosoft.Extensions.Configuration.EnvironmentVariables(环境变量读取)配置命令行参数: 配置环境变量参......
  • 可视化监控云平台/智能监控EasyCVR如何使用脚本创建ramdisk挂载并在ramdisk中临时运行
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防管理视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、......
  • 可视化监控云平台/智能监控EasyCVR如何使用脚本创建ramdisk挂载并在ramdisk中临时运行
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防管理视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、......
  • ubuntu 22.04 server 命令行很卡 很慢 无语
    我找到了另一个禁用帧缓冲区。我添加blacklistvga16fb到/etc/modprobe.d/blacklist-framebuffer.conf.......
  • arkui获取屏幕高度临时解决方案
    利用创建canvas对象来获取privatesettings:RenderingContextSettings=newRenderingContextSettings(true)privatecontext:CanvasRenderingContext2D=newCanvasRenderingContext2D(this.settings)将context对象传递给canvas对象,然后在回调函数中获取长宽数据......
  • 通过命令行启用 logcat 日志本地存储功能
    注意:本文基于Android12进行分析Qidi2023.12.06(MarkDown&Haroopad)0.背景在Android系统上进行开发时,为了分析bug,有些时候我们需要抓取开机日志。很多人知道,通过界面操作进入开发者选项就可以打开logcat日志的本地存储功能,从而很方便的抓取完整的开机日志。但......
  • allure commandline 命令行参数
    一、allurehtml产生流程方法一:alluregenerate+allureopen方法二:allureserver二、语法格式generateopenserver参考资料本文地址:https://www.cnblogs.com/hchengmx/p/17892977.html一、allurehtml产生流程Step1.test文件运行后产生allure-results文......
  • 提升生产力:是时候升级你的命令行工具了
    命令行的历史可以追溯到Unix操作系统的起源,也就是1969年,Unix诞生之时,前辈们就已经用命令行来和操作系统交互了。随着计算机性能的飞速发展,图形化的操作界面逐渐成为主流,命令行工具离普通用户越来越远。这些年来,图形界面的发展不仅仅表现在界面越来越美观,其操作方式也越来越丰富,不......
  • Windows 11 cmd命令行修改背景色、设置指定图片、桌面背景
    前言全局说明Windows11cmd命令行修改背景色、设置指定图片、桌面背景一、找到设置--外观可以自定义图片,也可以使用桌面背景图片(二选一)如果设置图片位置或高、宽,没有达到你想要的,可以在“拉伸模式”、“图像对齐”设置二、设置不透明度1.设置背景100%透明度效果......
  • 使用 Kubernetes 为 CI/CD 流水线打造高效可靠的临时环境
    介绍在不断发展的科技世界中,快速构建高质量的软件至关重要。在真实环境中测试应用程序是及早发现和修复错误的关键。但是,在真实环境中设置CI/CD流水线进行测试可能既棘手又昂贵。 Kubernetes是一个流行的容器编排平台,提供临时环境解决方案。在Kubernete的帮助下,用户能根......