-
2020-11-12 12:19:11
可以使用
scp
命令,scp
通过扩展cp
的语法,使用ssh
协议来跨系统copy文件1.从另外一个系统(比如:服务器)拷贝文件到本系统(本机)
scp username@hostname:/path/to/remote/file /path/to/local/file
2.从本系统(本机)拷贝文件到另外一个系统(服务器)
scp /path/to/local/file username@hostname:/path/to/remote/file
3.从一个系统(服务器A)拷贝文件到另外一个系统(服务器B)
scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file
scp命令参数介绍
https://www.runoob.com/linux/linux-comm-scp.html更多相关内容 -
从服务器中下载文件
2022-01-28 14:43:58从服务器中下载文件 本篇博客主要是实现从云服务器中的Linux系统中通过指令下载文件,其具体如下 1、tar -cvzf 压缩包名.tar.gz 文件或文件夹 1.1 指令解释 tar 对多个文件或文件夹进行打包/解包,并且可以进行压缩/...从服务器中下载文件
本篇博客主要是实现从云服务器中的
Linux
系统中通过指令下载文件,其具体如下1、
tar -cvzf 压缩包名.tar.gz 文件或文件夹
1.1 指令解释
tar 对多个文件或文件夹进行打包/解包,并且可以进行压缩/解压缩 -c 打包; -x 解包; -z 打包或解包时按照gzip格式压缩/解压缩; -j 打包或解包时按照bzip2格式压缩/解压缩; -v 显示详细打包/解包信息 -f 指定包名 如:打包:tar -cvzf file.tar.gz file1 file2 dir1...... 解包:tar -xvf file.tar.gz
1.2 打包案例
比如将下图中的class_linux
文件夹打包名为ClassLinux
指令为tar -cvzf ClassLinux.tar.gz class_linux/
运行结束后,便会生成对应的压缩包
2、sz 压缩包名.tar.gz
sz
:将选定的文件发送(send
)到本地机器若要下载上述压缩包到本地时,输入下述指令即可
sz ClassLinux.tar.gz
然后运行过程中按照需求自行选择下载位置,比如我选择的是 桌面
下载结束后则就有
-
把服务器当网盘玩 教你从云服务器下载自己的文件
2020-04-20 14:08:45首先,我们来了解一下,什么是云服务器: 云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速...本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/105633139 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段内容,尤其是脚本之家、码神岛等平台,谢谢配合。
首先,我们来了解一下,什么是云服务器:
云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。
云服务器帮助您快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务的创新。
接着,网盘大家就不陌生了吧?网盘就是可以存放数据的虚拟盘。网盘定义是这样的:
网盘,又称网络U盘、网络硬盘,是由互联网公司推出的在线存储服务。服务器机房为用户划分一定的磁盘空间,为用户免费或收费提供文件的存储、访问、备份、共享等文件管理等功能,并且拥有高级的世界各地的容灾备份。用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是在家中、单位或其它任何地方,只要你连接到因特网,你就可以管理、编辑网盘里的文件。不需要随身携带,更不怕丢失。
对于我们学生而言,云服务器的价格还是比较低廉的。获取很多小伙伴都已经接触过云服务器,那么我们买了云服务器之后,能做一些什么呢?
搭建自己的博客就不说了,我们还可以部署自己写的项目到云服务器,然后外网就可以访问到我们的项目了。
接下来我们介绍一个新玩法——把服务器当网盘玩,即从自己的云服务器下载指定的文件
哈哈哈花里胡哨 ,也算是最近我在研究的事情吧。
一:编写项目前台
在前台的JSP页面,我们只需要一行代码,就可以实现超链接下载
<a href="file">mysql下载</a>
接着是web.xml部署配置文件:
<servlet> <servlet-name>FileServlet</servlet-name> <servlet-class>ypc.zwz.controller.FileDownController</servlet-class> </servlet> <servlet-mapping> <servlet-name>FileServlet</servlet-name> <url-pattern>/file</url-pattern> </servlet-mapping> <filter> <filter-name>encodefilter</filter-name> <filter-class>ypc.zwz.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>encodefilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
前台JSP页面的超链接‘file’,被servlet这个服务器连接器所映射,对应到FileServlet这个servlet,然后到了ypc.zwz.controller.FileDownController这个Java文件中,进行后台的逻辑处理。(上方前8行代码)
encodefilter是文字编码过滤器,使用他可以保证中文正常显示。
最后的welcome-file-list就是首页,即运行项目就打开的页面。
二:后台逻辑编写
首先是文字过滤器
package ypc.zwz.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { } }
重点是文件下载的JAVA类
package ypc.zwz.controller; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class FileDownController extends HttpServlet{ private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.download(request, response); } public void download( HttpServletRequest request, HttpServletResponse response) { try { String path = "C://mysql-5.5.27-win32.msi"; downCfg(System.currentTimeMillis()+".msi", request, response); OutputStream out; FileInputStream inputStream = new FileInputStream(path); out = response.getOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len = inputStream.read(buffer)) != -1) { out.write(buffer, 0, len); } inputStream.close(); out.close(); out.flush(); } catch (IOException e) { e.printStackTrace(); } } private void downCfg(String fileName, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { String userAgent = request.getHeader("User-Agent"); if (userAgent.contains("MSIE") || userAgent.contains("Trident")) { //IE或者以IE为内核的浏览器 fileName = URLEncoder.encode(fileName, "UTF-8"); } else {//非IE浏览器 fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); } response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName)); response.setContentType("application/octet-stream;charset=utf-8"); response.setCharacterEncoding("UTF-8"); } }
当我们在前台JSP页面读到ypc.zwz.controller.FileDownController这个Java文件,会运行doGet()方法,其中doGet()又调用了doPost()方法,doPost()方法又调用了download()方法。
我们只需要更改path这一个String变量即可,即你需要下载的文件,在你云服务器上的路径即可,比如我选择的是mysql的安装包。
本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/105633139 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段内容,尤其是脚本之家、码神岛等平台,谢谢配合。
三:部署至服务器
项目编写好之后,我们需要配置一下Tomcat,我这里以eclipse为例,其他IDE同理,找到Tomcat打开设置即可。
如果上面第二步是灰的(无法更改),我们只需要停止正在运行的Tomcat,清除掉加进去的项目(右击Tomcat,选择Add and Remove),就变成可以更改的状态。
为什么要修改呢?因为部分IDE默认是在工作目录下的Servers目录下进行部署的,而我们需要把项目部署在Tomcat目录下的webapps下,所以需要更改。
我们先使用IDE启动一次项目,即把项目部署到Tomcat的webapp目录下,然后打开Tomcat目录下的bin文件夹,打开Tomcat85w.exe(不同版本文件名不同),启动。
接着在云服务器上跑一下
接下来,我们在外网浏览器输入服务器公网IP + 项目名
我们点击mysql下载这一个超链接,浏览器就会给我们下载到指定的文件。
那么,我们就实现了从自己的云服务器,下载自己指定的文件,这一个功能。
本项目完整代码已经附上,欢迎使用!
-
通过FTP从服务器上下载文件
2020-09-02 14:53:281.先设置好FTP服务器地址、端口、服务器文件存放路径、文件本地存储路径、用戶名和密碼(我这里获取的是服务器根目录下当天日期 (“yyyy-mm-dd”) 的文件夹) Date now = new Date(); SimpleDateFormat dateFormat...1.先设置好FTP服务器地址、端口、服务器文件存放路径、文件本地存储路径、用戶名和密碼(我这里获取的是服务器根目录下当天日期 (“yyyy-mm-dd”) 的文件夹)
Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String date = dateFormat.format(now); String FTP_PATH = "/"+date; //服务器文件保存路径 String FTPHost = "";//服务器地址 Integer prot = 21;//FTP传输默认端口21 String userName = "用户名" String userPassword = "密码"; String localPath = "F:\开发文档";
2.获取文件名之后将文件转换成字节下载到本地
try { List<String> list=getFileList(FTP_PATH,FTPHost,prot,userName,userPassword); for (int i = 0; i <list.size(); i++) { File file=new File(localPath ); file.mkdir(); if(file.isDirectory()) { String name=list.get(i); //下载文件 downloadFtpFile(FTPHost,userName,userPassword,prot,FTP_PATH,localPath,name); logger.debug((localPath+"\\"+name)); } } }catch (Exception e) { logger.debug("FTP下载失败:"+e.getMessage()); }
获取指定路径下文件名
public List<String> getFileList(String path,String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) throws Exception { List<String> fileLists = new ArrayList<String>(); // 获得指定目录下所有文件名 FTPFile[] ftpFiles = null; //连接服务器 FTPClient ftpClient=getFTPClient(ftpHost, ftpPort, ftpUserName, ftpPassword); try { ftpFiles = ftpClient.listFiles(path); } catch (IOException e) { e.printStackTrace(); } for (int i = 0; ftpFiles != null && i < ftpFiles.length; i++) { FTPFile file = ftpFiles[i]; if (file.isFile()) { String name=new String(file.getName().getBytes("iso-8859-1"),"GBK"); logger.debug(name); fileLists.add(name); } } return fileLists; }
连接FTP服务器
public static FTPClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) { FTPClient ftpClient = null; try { ftpClient = new FTPClient(); ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器 ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器 if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { logger.info("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { logger.info("FTP连接成功。"); } } catch (SocketException e) { e.printStackTrace(); logger.info("FTP的IP地址可能错误,请正确配置。"); } catch (IOException e) { e.printStackTrace(); logger.info("FTP的端口错误,请正确配置。"); } return ftpClient; }
从ftp上下载文件
public static void downloadFtpFile(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort, String ftpPath, String localPath, String fileName) { String localCharset = "GBK";//本地编码 String serverCharset = "ISO-8859-1";//服务器编码 FTPClient ftpClient = null; try { ftpClient = getFTPClient(ftpHost, ftpPort, ftpUserName, ftpPassword); // 设置上传文件的类型为二进制类型 if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {// 开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码,否则就使用本地编码(GBK). FtpConfig.LOCAL_CHARSET = "UTF-8"; } ftpClient.setControlEncoding(FtpConfig.LOCAL_CHARSET); ftpClient.enterLocalPassiveMode();// 设置被动模式 ftpClient.setFileType(FTP.BINARY_FILE_TYPE);// 设置传输的模式 // 上传文件 //对中文文件名进行转码,否则中文名称的文件下载失败 String fileNameTemp = new String(fileName.getBytes(localCharset), serverCharset); ftpClient.changeWorkingDirectory(ftpPath); InputStream retrieveFileStream = ftpClient.retrieveFileStream(fileNameTemp); byte[] input2byte = input2byte(retrieveFileStream); byte2File(input2byte, localPath, fileName); if(null != retrieveFileStream){ retrieveFileStream.close(); } } catch (FileNotFoundException e) { logger.error("没有找到" + ftpPath + "文件"); e.printStackTrace(); } catch (SocketException e) { logger.error("连接FTP失败."); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); logger.error("文件读取错误。"); e.printStackTrace(); } finally { if (ftpClient.isConnected()) { try { //退出登录 ftpClient.logout(); //关闭连接 ftpClient.disconnect(); } catch (IOException e) { } } } }
将流转换为字节数组
// 将输入流转为byte[] public static final byte[] input2byte(InputStream inStream) throws IOException { ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new byte[100]; int rc = 0; while ((rc = inStream.read(buff, 0, 100)) > 0) { swapStream.write(buff, 0, rc); } byte[] in2b = swapStream.toByteArray(); return in2b; }
将字节数组转换为文件
// 将byte[]转为文件 public static void byte2File(byte[] buf, String filePath, String fileName) { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { File dir = new File(filePath); if (!dir.exists() && dir.isDirectory()) { dir.mkdirs(); } file = new File(filePath + File.separator + fileName); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(buf); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
-
java实现从服务器下载文件到本地指定目录
2019-11-01 13:52:15* 根据指定URL将文件下载到指定目标位置 * urlPath 下载路径 * downloadDir 文件存放目录 * @return */ public String downloadFile(HttpServletRequest request,String urlPath){ File file = null... -
Java——通过Java代码从ftp服务器下载文件
2021-06-04 09:09:43微信:shuhao-99999 前言 连接ftp服务器方式:通过Java代码连接ftp服务器 实现 下载文件实现方式: public void downloadFile(String localPath, String ftpPath, String fileName) { if (!localPath.endsWith("/... -
Java从服务器读取文件并下载到本地
2021-02-12 14:03:56也就是用户不是直接通过文件服务器下载,而是先经过后台,后台从文件服务器读取该文件,然后在写给用户。@RequestMapping("downloadFile")public void download(String id, HttpServletResponse response){//获取该... -
Java下载服务器文件
2021-11-06 22:46:11本文利用Java.net编写的网络客户端实现从服务器端下载文件的功能,本功能实现分三步: 1、创建本地待接收的远程文件。 2、创建本地至服务器端的远程连接。 3、将服务器端文件写入输入流,从输入流中将内容写入... -
从Linux服务器下载文件到本地命令
2022-03-24 12:04:44从Linux服务器下载文件夹到本地 1、使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下 scp work@192.168.0.10:/home/work/... -
Java从服务器下载文件到本地
2021-05-24 18:37:01SCPClient 的get方法从服务器下载中文名称的文件时也存在问题。 /** * 创建SSH连接 * @param hostName * @param username * @param password * @param port * @return */ public static Connection ... -
远程Linux服务器文件下载至Windows本地
2021-07-07 17:53:55使用基于ssh的pscp命令 ...在远程服务器下使用如下命令: get /tmp/test.txt 文件自动保存至本地,目录查看:工具→选项→会话 参考文献: https://blog.csdn.net/qq_22326625/article/details/87618435 ... -
linux服务器怎么下载文件到本地
2021-05-09 06:19:46linux服务器怎么下载文件到本地发布时间:2020-06-16 12:08:20来源:亿速云阅读:318作者:鸽子1、使用scp命令scp /home/work/source.txt work@192.168.0.10:/home/work/#把本地的source.txt文件拷贝到192.168.0.10... -
从服务器上下载文件的方法
2018-02-02 15:51:04有时候需要提供一些文件供用户下载,本文就写了一个支持文件下载的方法,... * 下载文件 * 创建人:A-bing * 创建时间:2018年2月2日 */ public class FileDownload { /** * @param response * @param fi... -
Mac将本地文件上传到服务器以及从服务器下载文件到本地
2021-06-19 15:02:43将本地文件上传到服务器 方法一: scp /Local/file/***.tar.gz root@47.100.192.xxx:/root/***.tar.gz /Local/file/***.tar.gz为本地文件地址 root@47.100.192.xxx 表示使用root用户登录远程服务器47.100.192.xxx :... -
java 从服务器下载文件并保存到本地
2018-09-19 21:22:38当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步: (1)客户端发起一个url请求,获取连接对象。 (2)服务器解析url,并且将指定的资源返回一... -
SecureCRT 从服务器端下载文件到本地
2021-03-10 14:26:171.快捷键alt+p打开sftp窗口,输入想要下载的文件所在的目录,回车 lcd E:/download 2.输入要下载的文件 get /usr/hello.jar 回车之后,就能将服务器中指定的文件下载到本地指定的目录下。 -
java从linux服务器下载文件
2020-09-05 21:43:35java从linux服务器下载文件到本地 最近做项目,使用的技术较老,前端用的架构是jsp,主要技术是jquery、js、css、html等,后端用到的主要是springmvc、存储过程等。 下面是一个文件下载的简单实现。主要是客户在... -
JAVA实现从服务器下载文件,将下载文件转成文件流响应给前端
2022-03-05 17:42:42如何实现从服务器下载文件全过程,详细代码 -
Android从服务器上下载文件
2018-07-30 05:44:12* 从服务器下载文件 * @param path 下载文件的地址 * @param FileName 文件名字 */ public static void downLoad(final String path, final String FileName) { new Thread(new Runnable() { @Override ... -
用命令从FTP服务器下载文件
2020-05-20 16:57:57用命令从FTP服务器下载文件 1、FTP 服务器地址 。进入对应服务器 2、输入用户名和密码 3、dir 。查看服务器中的文件 4、cd 文件位置 。 进入被下载文件的当前位置 5、lcd 本地文件目录 。设置文件被下载到的本机位置... -
使用SSH从服务器下载文件
2020-06-03 20:02:04通常,您使用安全复制或SCP通过SSH连接从另一台服务器下载文件。 例如, scp username@remotehost:remoteFileToDownload localFolderNameToSaveTheFile 1. SCP实例 1.1从服务器下载文件 从服务器(198.58.xx)... -
java+jsp代码实现从FTP服务器上传下载文件
2013-01-24 11:35:51java+jsp代码实现从FTP服务器上传下载文件。 里面给了java方法和jsp页面的代码。主要是实现从FTP服务器上面下载文件到自己本地文件夹下面。另外还给了几个网站供大家参考。 -
Java FTP 实现跨服务器文件上传下载
2013-11-19 13:44:01Java 程序实现的 FTP 跨服务器文件上传下载功能。 -
java 以流的形式从服务器下载文件并保存到本地
2020-12-08 18:00:10当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步: (1)客户端发起一个url请求,获取连接对象。 (2)服务器解析url,并且将指定的资源返回一个... -
mac电脑如何从远程连接的服务器上下载文件
2020-03-18 01:05:20由于最近个人电脑换成mac了,需要从远程服务器上下载文件到自己电脑上。 没用samba,因为我不是服务器管理员,所以一时没办法在服务器上安装。 在网上查找指令,遇到一些指令写错的还放上来误导观众。 于是打开很... -
asp.net 从服务器上下载文件
2018-09-09 21:09:07protected void lbtnDown_Click(object sender, EventArgs e) { // 定义文件路径 string url = Server.MapPath("~/DowloadFromHere/TextFile1.txt"); // 定义文件名 ... -
【Shell】从远程服务器下载文件到本地服务器的shell脚本
2019-05-29 11:53:53#!/bin/bash #===================================================== ...#功能:下载文件脚本 #调用方法: sh download_file.sh YYYYMMDD source_system ok_file txt_file #=====================...