.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. ...
随机推荐
- Html5中 视频 音频标签 进度条问题
最近项目中使用Html5的video和audio标签来在线播放视频和音频文件,但是遇到个奇葩的问题,页面上播放之后进度条无效, 查看w3c之后发现html代码并没有什么不同,之后猜想如果用静态的htm ...
- CentOS 7运维管理笔记(6)----Apache 基于 IP 的虚拟主机配置
Apache 配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置.本篇随笔记录自己基于IP的虚拟主机配置. 如果同一台服务器有多个IP,可以使用基于IP的 ...
- linux父子进程问题
今天遇到一个linux进程启动时指定Max open files不对的问题,导致程序建立socket异常,进而导致fullgc问题,影响正常服务.所以顺带又温习了下linux下的父子进程的特性. 孤儿 ...
- python读写不同编码txt文件
以后整理规范 import os import codecs filenames=os.listdir(os.getcwd()) out=file("name.txt",& ...
- 微信证书 javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
这几天在做微信退款接口,按照api写完之后,在本地测试了下没有问题,于是交给测试让他们在测试环境开测.他们说退款没有成功,感觉去查日志,发现后台报了 javax.net.ssl.SSLExceptio ...
- dubbo学习总结一 API
API 一般用来暴露接口 项目分层一般是 api + entity + enums + model 就是接口加上一些实体之类的东西
- Linux 命令备忘(持续更新中……)
Linux命令 grep 1. 使用grep 筛选内容,多条件筛选用 grep - E "条件1|条件2" (满足条件1或条件2的均展示) 2. grep '条件3'|grep - ...
- 微软牛津计划——声纹识别与视频识别API上线啦!
上个月,我们发布了牛津计划机器学习的情感识别API,能够帮助不同平台的开发者轻松添加智能应用,而无需精通人工智能领域.牛津计划仅仅是微软在人工智能领域探索中的一个实例,而我们的期望是实现更加注重个人使 ...
- js前台实现上传图片的预览
网上这样的插件一大堆,不过还是谈下js下代码的实现,加深这方面的理解. 当然也没有一种方式就可以完事的情形,主要就两种方面来处理: 1.file API的filereader接口完成(支持的浏览器:I ...
- 在自己机器上实现apache的多域名
自己机器上有3个目录,分别是/var/www/html/ /var/www/solaris/ ...