.Net core 使用SSH.Net上传到SFTP服务器和和下载文件
今天换了个服务器,文件上传到sftp服务器上了,那么ftp和sftp服务器有什么区别呢,正常来说sftp会更安全一些。
废话不多说,首先.net core 上传到sftp需要引入一个Nuget包,就是下图这个了。
引入之后呢,就可以直接使用了,非常的方便快捷,需要先引入
using Renci.SshNet;
这个命名空间。
然后我们前台传来的file文件通过memorystream的方式传到服务器,
/// <summary>
/// 上传文件到ftp服务器上
/// </summary>
/// <param name="file">文件</param>
/// <param name="dateStr">文件时间戳</param>
/// <returns>bool</returns>
public static bool UploadFile(IFormFile file, long dateStr)
{
bool result = false;
using (var client = new SftpClient(ftpAddress, , ftpUser, ftpPwd)) //创建连接对象,ftpAddress是ip地址如: 47.100.11.12 第二个参数是端口号,第三四个是用户名密码
{
client.Connect(); //连接 MemoryStream fs = new MemoryStream();
file.CopyTo(fs); client.BufferSize = * * ;
fs.Seek(, SeekOrigin.Begin); client.UploadFile(fs, "/DirkWang/" + dateStr.ToString() + "_" + file.FileName);
fs.Dispose();
result = true;
} return result;
}
这里要注意,上传到服务器上的目录的权限是要可读写的。然后加上时间戳防止文件重名。
然后是下载文件,下载文件更加简洁明了。
/// <summary>
/// 下载附件
/// </summary>
/// <param name="fileName">附件名</param>
/// <returns>byte[]</returns>
public static byte[] DownloadFile(string fileName)
{
byte[] buffer = new byte[ * * ];
using (var client = new SftpClient(ftpAddress, , ftpUser, ftpPwd)) //创建连接对象
{
client.Connect(); //连接 buffer = client.ReadAllBytes("/" + fileName);
} return buffer;
}
然后这里用byte数组方便传到前台,ReadAllBytes方法的参数是文件的路径。
基本上就是那么简单,不过关于ssh.net 上传文件和下载的资料非常少,所以这里写一下,记录一下。
.Net core 使用SSH.Net上传到SFTP服务器和和下载文件的更多相关文章
- 打包成apk,生成apk文件,上传到网站服务器提供链接下载
Android开发把项目打包成apk: 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android ...
- linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。
首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...
- Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www ...
- Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
http://blog.csdn.net/rodulf/article/details/71169996 利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下 ...
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...
- ssh centos 上传文件
ssh centos 上传文件命令(ftp开不起的情报况下): rz -be 下载文件: sz
- SSH 远程上传本地文件至服务器
使用SSH命令行传输文件到远程服务器 以前一直在windows下用SSH Secure Shell连接远程服务器,它自带了一个可视化的文件传输工具,跟ftp差不多 但是它也存在一个缺陷,不支持编码 ...
- [转载]如何通过ssh进行上传/下载
[转载]如何通过ssh进行上传/下载 学校给配了服务器的用户账号,但是怎么向服务器中上传以及下载文件呢?Windows下可以使用Xftp和Xshell,但是Linux下能不能用命令行解决呢? 什么是S ...
- ssh scp 上传下载文件
scp username@servername:/path/filename 例如scp codinglog@192.168.0.101:/home/kimi/test.txt 把192.168. ...
随机推荐
- js获取当前日期和时间的代码
最佳答案 var myDate = new Date(); myDate.toLocaleDateString(): //获取当前日期myDate.toLocaleTimeString(); //获取 ...
- CentOS 7运维管理笔记(10)----MySQL源码安装
MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统.本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程. 1.下载源码 选择使用北理工的镜像文件: ...
- Math类中常用方法
public static int abs(int a) , public static long abs(long a), public static float abs(float a), pu ...
- C#复制粘贴
用C#程序复制粘贴非常简单,这里为了实用,只介绍对文字的操作,其他情况类似: Clipboard.SetText(“我是需要复制到系统剪贴板的文字”); 执行以上代码后,即可ctrl+V进行粘贴.是不 ...
- vim的visual模式
在可视化模式下,可以对一个文本块的整体进行操作.例如,首先高亮选中一部分文本,然后用d命令删除这个文本块.可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本.可视化模式可以分为以下三种: ...
- Effective Java 第二版 Enum
/** * Effective Java 第二版 * 第30条:用enum代替int常量 */ import java.util.HashMap;import java.util.Map; publi ...
- July 07th 2017 Week 27th Friday
Learn wisdom by the follies of others. 要从别人的愚行中学到智慧. How to become smart or what characters should a ...
- std::string,std::vector,std::accumulate注意事项
在用string做字符串拼接时,会发现随着string的增大越来越慢,原因主要是string(和vector)是基于现行内存的数据结构,在海量数据时,经常会申请新的一块内存,把原有的数据拷贝过去然后再 ...
- 体验了Sublime + Emmet,才体会到原来前端开发可以这么痛快!
从当初用notepad写出第一个web页面,到现在偶尔使用Editplus做一些HTML5的消遣,不知不觉已经15年了 --! 在这中间,和那些老顽固一样,坚决远离FP.DW那些半自动的前端开发工具 ...
- SP34096 【DIVCNTK - Counting Divisors (general)】
题目 求 \[\sum_{i=1}^n \sigma(i^k)\] 我们先来设一个函数\(f(i)=\sigma(i^k)\) 根据约数个数定理 \[f(p)=\sigma(p^k)=k+1\] \[ ...