admin管理员组文章数量:1026989
这两天自己搞得头大,到最后才彻底搞明白,自己做个总结。
一、下载安装freesshd
软件官网已经g了,翻墙找了个下载安装了下。
全程默认安装即可,安装完成后桌面图表
二、配置 freesshd
打开运行 开始配置
SSH
这块端口我默认的22,最大连接数跟超时时间自己设置,其它都是默认勾选的不用管
Authentication
这里我是用密码进行访问认证,所以 Password 这块选择 Required
SFTP
sftp这块,选择自己要上传到Windows服务器哪个目录下选择即可。
Users
users这块,自己添加用户,然后Auth认证选择Password,密码自己设置,下面勾选我只用SFTP所以只勾选了一个,添加成功后如下图左边图一样。
Server Status
最后添加完成之后,到Server这里,全部点击下,呈绿色之后确定即可。
三、下载安装 Filezilla
官网:下载 - FileZilla中文网
我这里下载的是 Windows 客户端,安装完成打开运行
四、配置Filezilla
打开之后点击这里,添加新站点
协议选择SFTP,主机就本地,端口22,用户和密码一定要与刚刚 freesshd 所添加的用户密码一致!然后连接即可。
成功后如图。
五、代码-数据库 配置
这里因为是从数据库读的,添加一条Windows的
剩下改了部分代码,代码这块报错给我难受死了,我是真的菜。
因为原本是有3种存储方式【S3、OSS、SFTP】 ,这里原本的SFTP是存到Linux服务器上的,所以我这里多添加个类型判断。
uploadFile 代码
大部分跟Linux-SFTP的一样,只不过这里创建文件夹的改动了下。
递归创建多级目录
六、路径查看配置
要想直接在浏览器上输入路径进行查看,必须得装 Nginx ,我这里简单配置了下。
1、下载 Nginx
官网下载地址:nginx: downloadhttps://nginx/en/download.html
2、配置 Nginx
打开Nginx的配置文件(一般是位于安装目录下的 conf/nginx.conf
文件),进行如下配置
我这里解压到了E盘,编辑 nginx.conf 文件:
server {
listen 80;
server_name your_domain; // 替换为你的域名或IP地址
location / {
alias E:/SFTP/; // 替换为实际的文件上传目录
autoindex on; // 允许浏览目录列表
}
}
3、启动 Nginx
双击 Nginx.exe 或者命令行 启动都可以,启动成功后在任务管理能看到。
4、路径配置
因为我这里把 【E:\SFTP】映射成了 【/】,那么在 filepath 里加上即可。
5、文件查看
添加成功后,经过上传文件测试,返回结果如下:
复制到网址打开,这样就成功了
七、下载
下载这块我就直接贴下代码图了。。。
八、总结
1、用户问题
一直搞不懂用户的原因,这个用户到底是该管理员用户还是添加的用户。
解决:上面已经说了 freessh 添加的任意一个用户,都可以进行 SFTP 连接,在数据库配置任意一个都可以!并且 Filezilla 新站点登录用户一定要与 你数据库配置的用户一样!
2、路径问题
刚开始的路径默认其实是在你连接的这个用户目录下,比如我连接Windows服务器时用的 root 用户,那么默认上传路径就在 C:\Users\root 下,但是我用freesshd开启了SFTP路径设置,那么就会在那个设置的路径下,所以从一开始我路径出了问题!
此时我设置的 SFTP 目录为 :E:\SFTP
我是要在这个文件夹下,根据需求不同创建多级目录,因此不需要任何前缀目录等等。
假如此时 fileType 为 null ,那么此时 targetPath 也就是 【其它文件/file】 ,那么此时如果是绝对路径其实就是服务器中的 :【E:/SFTP/其它文件/file】
进入 uploadFile 之后,此时 SFTP 连接到服务器之后是没有后面这两个目录的,因此这里进入递归创建多级目录
此部分走完发现多级目录已经创建
put 之后,此时文件夹内就有了文件
刚开始这里每次第一次创建目录之后都报一个 No Such File 错误,文件也没有写入成功,只有第二次才写入,发现这里判断的问题。
最初代码这样的
我可真SB啊,然后改成了else....
3、\ 与 / 和 \\ 问题
最初因为我觉得 Linux 应该是 / ,windows 应该是 \ ,文件目录也是这么显示的,所以我把所有的 / 改成了 \,粘贴之后在字符串里就是 \\ ,可是在本地测试发现,我创建目录时,在 Windows 下,不管是 \ 还是 / 效果都一样!
因此 不需要考虑 \ 和 / 的问题。
4、路径查看问题
写到这里,补充了个 六 部分,把路径查看问题也解决了,有个问题就是因为我文件名是中文,没做转码,可能微信就会识别失败。
可以把文件名改成英文就好了,点开就可以识别了。
5、下载问题
md,原本写的时候映射地址是 upload,导致我文件路径ip后面就是 upload,网页预览是没问题了,但是下载不了,就是因为 upload 不是一个文件路径,是映射路径。
感谢我辉哥,呜呜呜,我去百度补充了下 nginx 斜杠规则,然后改了下 location 后的 映射地址,完美解决!
算是给自己做个总结记录,以后再碰到这玩意不能再错了。。。。
下b班,今天又是菜狗成长的一天。
这两天自己搞得头大,到最后才彻底搞明白,自己做个总结。
一、下载安装freesshd
软件官网已经g了,翻墙找了个下载安装了下。
全程默认安装即可,安装完成后桌面图表
二、配置 freesshd
打开运行 开始配置
SSH
这块端口我默认的22,最大连接数跟超时时间自己设置,其它都是默认勾选的不用管
Authentication
这里我是用密码进行访问认证,所以 Password 这块选择 Required
SFTP
sftp这块,选择自己要上传到Windows服务器哪个目录下选择即可。
Users
users这块,自己添加用户,然后Auth认证选择Password,密码自己设置,下面勾选我只用SFTP所以只勾选了一个,添加成功后如下图左边图一样。
Server Status
最后添加完成之后,到Server这里,全部点击下,呈绿色之后确定即可。
三、下载安装 Filezilla
官网:下载 - FileZilla中文网
我这里下载的是 Windows 客户端,安装完成打开运行
四、配置Filezilla
打开之后点击这里,添加新站点
协议选择SFTP,主机就本地,端口22,用户和密码一定要与刚刚 freesshd 所添加的用户密码一致!然后连接即可。
成功后如图。
五、代码-数据库 配置
这里因为是从数据库读的,添加一条Windows的
剩下改了部分代码,代码这块报错给我难受死了,我是真的菜。
因为原本是有3种存储方式【S3、OSS、SFTP】 ,这里原本的SFTP是存到Linux服务器上的,所以我这里多添加个类型判断。
uploadFile 代码
大部分跟Linux-SFTP的一样,只不过这里创建文件夹的改动了下。
递归创建多级目录
六、路径查看配置
要想直接在浏览器上输入路径进行查看,必须得装 Nginx ,我这里简单配置了下。
1、下载 Nginx
官网下载地址:nginx: downloadhttps://nginx/en/download.html
2、配置 Nginx
打开Nginx的配置文件(一般是位于安装目录下的 conf/nginx.conf
文件),进行如下配置
我这里解压到了E盘,编辑 nginx.conf 文件:
server {
listen 80;
server_name your_domain; // 替换为你的域名或IP地址
location / {
alias E:/SFTP/; // 替换为实际的文件上传目录
autoindex on; // 允许浏览目录列表
}
}
3、启动 Nginx
双击 Nginx.exe 或者命令行 启动都可以,启动成功后在任务管理能看到。
4、路径配置
因为我这里把 【E:\SFTP】映射成了 【/】,那么在 filepath 里加上即可。
5、文件查看
添加成功后,经过上传文件测试,返回结果如下:
复制到网址打开,这样就成功了
七、下载
下载这块我就直接贴下代码图了。。。
八、总结
1、用户问题
一直搞不懂用户的原因,这个用户到底是该管理员用户还是添加的用户。
解决:上面已经说了 freessh 添加的任意一个用户,都可以进行 SFTP 连接,在数据库配置任意一个都可以!并且 Filezilla 新站点登录用户一定要与 你数据库配置的用户一样!
2、路径问题
刚开始的路径默认其实是在你连接的这个用户目录下,比如我连接Windows服务器时用的 root 用户,那么默认上传路径就在 C:\Users\root 下,但是我用freesshd开启了SFTP路径设置,那么就会在那个设置的路径下,所以从一开始我路径出了问题!
此时我设置的 SFTP 目录为 :E:\SFTP
我是要在这个文件夹下,根据需求不同创建多级目录,因此不需要任何前缀目录等等。
假如此时 fileType 为 null ,那么此时 targetPath 也就是 【其它文件/file】 ,那么此时如果是绝对路径其实就是服务器中的 :【E:/SFTP/其它文件/file】
进入 uploadFile 之后,此时 SFTP 连接到服务器之后是没有后面这两个目录的,因此这里进入递归创建多级目录
此部分走完发现多级目录已经创建
put 之后,此时文件夹内就有了文件
刚开始这里每次第一次创建目录之后都报一个 No Such File 错误,文件也没有写入成功,只有第二次才写入,发现这里判断的问题。
最初代码这样的
我可真SB啊,然后改成了else....
3、\ 与 / 和 \\ 问题
最初因为我觉得 Linux 应该是 / ,windows 应该是 \ ,文件目录也是这么显示的,所以我把所有的 / 改成了 \,粘贴之后在字符串里就是 \\ ,可是在本地测试发现,我创建目录时,在 Windows 下,不管是 \ 还是 / 效果都一样!
因此 不需要考虑 \ 和 / 的问题。
4、路径查看问题
写到这里,补充了个 六 部分,把路径查看问题也解决了,有个问题就是因为我文件名是中文,没做转码,可能微信就会识别失败。
可以把文件名改成英文就好了,点开就可以识别了。
5、下载问题
md,原本写的时候映射地址是 upload,导致我文件路径ip后面就是 upload,网页预览是没问题了,但是下载不了,就是因为 upload 不是一个文件路径,是映射路径。
感谢我辉哥,呜呜呜,我去百度补充了下 nginx 斜杠规则,然后改了下 location 后的 映射地址,完美解决!
算是给自己做个总结记录,以后再碰到这玩意不能再错了。。。。
下b班,今天又是菜狗成长的一天。
版权声明:本文标题:Windows搭建SFTP,实现文件上传到Windows服务器并查看 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1724689749a503573.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论