精华内容
下载资源
问答
  • 1 下载共享软件chfswindowsd 将chfs.exe放到想共享的文件夹,双击运行 ...4 手机显示就会显示电脑IP地址,复制这个IP到手机的浏览器,就能在...由于需要共享文件夹必须运行两个程序,接下来尝试使用树莓派制作远程服务器 ...

    1 下载共享软件chfswindowsd
    将chfs.exe放到想共享的文件夹,双击运行

    2 下载蒲公英,安装到电脑上,创建登陆,不需要注册域名

    3 手机上下载蒲公英,登陆上面创建的账号

    4 手机显示就会显示电脑IP地址,复制这个IP到手机的浏览器,就能在浏览器界面看到电脑共享的文件夹了

    由于需要共享文件夹必须运行两个程序,接下来尝试使用树莓派制作远程服务器

    展开全文
  • 本地文件服务器前言搭建背景搭建需求搭建流程结尾 前言 开发游戏的同学们,经常都会遇到以下情况:当包体大于平台限制不被允许打包发布;建议将不必要的资源文件放在远程加载;打开发版本的包,没有合适的服务器让...

    前言

    开发游戏的同学们,经常都会遇到以下情况:当包体大于平台限制不被允许打包发布;建议将不必要的资源文件放在远程加载;打开发版本的包,没有合适的服务器让我们放置远程资源等等。当然不只是以上两种情况,我们可能必须或可能想要将远程加载的资源从主包体中移放到搭建好的远程服务器下。买服务器或者搭建公共的服务器都需要成本,那么今天,我就来教大家在本地搭建一个用于存放远程资源文件的IIS服务器。

    搭建背景

    为什么会想要搭建这么一个服务器呢?因为我在开发微信平台小游戏的时候,一方面因为项目包体体量超过平台限制,另外一方面也是为了给玩家更好的游戏体验,遵从引擎组的建议,将打包好的资源文件res放在远程服务器上。因为自己平时负责开发版本的打包工作,之前工作组没有单独公共的文件服务器环境,所以就想自己搭建一个服务器,可以满足开发版本的需求。

    搭建需求

    1.满足资源放置条件并安全顺利访问
    2.满足局域网内其他真机访问

    搭建流程

    整个过程非常顺畅,几乎没有遇到太多坑。

    1. 根据百度经验词条,搭建iis服务器,链接: 【百度经验】图解如何搭建IIS文件服务器.
    2. 此时,已经可以把项目的远程服务器地址改成我们在步骤1中可以访问到的地址,就是自己本机的ip+路径如“http://192.168.* .* /wx/miniGame/”(注意前面是ip,后面的是你服务器文件目录的路径,也就是你的res文件是放在miniGame文件夹下,验证是否能够访问,就把此链接在浏览器中打开一看便可)。
    3. 但这时确实可以访问远程资源了,但是你会在微信调试工具上发现,一些资源下载失败的警告或者错误。这个时候,你在浏览器中打开这些资源的路径,你会发现浏览器上有这样的日志信息。
      HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页
      在这里插入图片描述
      那么,很有可能是因为mime策略的设置的问题。因为 Creator 使用的服务器是 express,不是 IIS,所以是 IIS 的 MIME 没配置 json 之类的文件。
      请看这位同学的文章,链接HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面
      按照文章的教程,分别进行设置你的远程文件资源包中不能够正确下载的文件格式:
      文件扩展名:.json
      mime类型:application/.json
      文件扩展名:.atlas
      mime类型:image/.atlas
      (如果不知道mime类型,可以网上查找mime类型大全,如果还没有,那么你要根据它的类型去猜测设置)
    4. 在本机的微信调试工具上完全ok了之后,这个时候可能在同局域网内还不能访问,你可以拿测试机尝试访问我们服务器的ip,如果可以访问,那就没有问题;如果无响应,那么可能就是我们服务器主机的防火墙设置问题,解决办法参考步骤五。
    5. 下载BMFont,链接: 【百度经验】IIS网站本机可以访问,局域网其他机器无法访问.

    结尾

    这便是整个搭建的流程啦,如果还有不明白或者解决不了的地方,欢迎联系我。尽我所能,给你所需。
    另外如果你对cocos游戏开发感兴趣,欢迎加群
    在这里插入图片描述

    展开全文
  • 使用vsftpd+nginx搭建一个文件服务器 最近做项目需要展示大量图片,如果都存起来太过占用空间,而且动态上传的图片如何存放也是个问题,所以就用nginx+vsftp搭建一个图片服务器,用来上传并且展示图片。 一:安装...

    使用vsftpd+nginx搭建一个文件服务器

    最近做项目需要展示大量图片,如果都存起来太过占用空间,而且动态上传的图片如何存放也是个问题,所以就用nginx+vsftp搭建一个图片服务器,用来上传并且展示图片。

    一:安装vsftpd

    1.安装

    [root@localhost jack]# yum -y install vsftpd

    安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。

    2.添加用户和密码

    [root@localhost jack]# useradd ftpadmin

    为ftp创建一个用户,可以用这个登录,登录后默认的路径为 /home/ftpadmin

    [root@localhost jack]# passwd ftpadmin

    输入两次给ftpadmin 添加密码

    3.防火墙开启21端口

    因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件

    [root@localhost jack]# vim /etc/sysconfig/iptables

    img

    添加一条: -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    输入":wq" 保存,

    [root@localhost jack]# service iptables restart

    重启防火墙,

    4.修改selinux

    外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。

    修改selinux:

    执行以下命令查看状态:

    [root@localhost jack]# getsebool -a | grep ftp

    allow_ftpd_anon_write --> off

    allow_ftpd_full_access --> off

    allow_ftpd_use_cifs --> off

    allow_ftpd_use_nfs --> off

    ftp_home_dir --> off

    ftpd_connect_db --> off

    ftpd_use_passive_mode --> off

    httpd_enable_ftp_server --> off

    tftp_anon_write --> off

    执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问

    [root@localhost jack]# setsebool -P allow_ftpd_full_access on

    [root@localhost jack]# setsebool -P ftp_home_dir on

    5.关闭匿名访问,

    编辑vsftpd的配置文件 [root@localhost jack]# vi /etc/vsftpd/vsftpd.conf

    修改: anonymous_enable=YES 为 anonymous_enable=NO

    img

    6.设置开机启动vsftpd ftp 服务

    [root@localhost jack]# chkconfig vsftpd on

    7.操作命令

    启动Vsftpd服务:

    # service vsftpd start

    停止Vsftpd服务的命令为:

    # service vsftpd stop

    重新启动Vsftpd服务

    # service vsftpd restart

    检查Vsftpd服务状态

    service vsftpd status

    二: nginx 安装

    1.可能需要的依赖环境安装

    1). gcc

    安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:

    yum install gcc-c++

    2). PCRE

    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

    yum install -y pcre pcre-devel

    3). zlib

    zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

    yum install -y zlib zlib-devel

    4). openssl

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

    nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

    yum install -y openssl openssl-devel

    2.编译安装

    [root@localhost nginxFile]# tar -zxvf nginx-1.4.0.tar.gz

    [root@localhost nginxFile]# cd nginx-1.4.0

    [root@localhost nginx-1.4.0]# ./configure --help 可以查询详细编译参数

    我们这里简单编译即可

    安装路径在/usr/ local/nginx 文件夹会自动创建

    ./configure \

    –prefix=/usr/local/nginx \

    –pid-path=/var/run/nginx/nginx.pid \

    –lock-path=/var/lock/nginx.lock \

    –error-log-path=/var/log/nginx/error.log \

    –http-log-path=/var/log/nginx/access.log \

    –with-http_gzip_static_module \

    –http-client-body-temp-path=/var/temp/nginx/client \

    –http-proxy-temp-path=/var/temp/nginx/proxy \

    –http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

    –http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

    –http-scgi-temp-path=/var/temp/nginx/scgi

    注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

    [root@localhost nginx-1.4.0]# make

    [root@localhost nginx-1.4.0]# make insatll

    转到安装路径可以看到

    img

    3.nginx 操作命令

    1).查询nginx 进程

    [root@localhost nginx]# ps aux|grep nginx

    img

    2).启动nginx 服务

    在 /usr/local/nginx/sbin 目录下 有一个nginx 可执行文件,

    在此目录下可以直接 ./nginx 执行

    3).停止nginx 服务

    [root@localhost nginx]# ./nginx -s stop

    4)重启nginx 服务

    [root@localhost nginx]# ./nginx -s reload

    浏览器访问可以看到nginx欢迎页面

    img

    4.更换nginx工作目录到ftp用户下

    编辑ngxin配置文件

    vi/usr/local/nginx/conf/nginx.conf

    img

    将这里的工作目录修改成ftp用户下的目录

    img

    重启nginx服务

    [root@localhost nginx]# ./nginx -s reload

    我在ftpadmin这个用户下面创建了一个images的文件夹

    img

    现在浏览器输入: http://192.168.61.133/images/jack.jpg

    img

    参考:

    https://www.cnblogs.com/jacklovejia/p/7715977.html

    展开全文
  • 2:文件服务器搭建 3:Ftp远程文件上传实现 4:文件静态化上传到指定的文件服务器 5:总结 Nginx 的安装 1 :安装依赖 yum install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib z...

    环境CentOS6.9 Nginx 1.14.0 (centos7命令会有所不同)

    课程目标

    1:Nginx的安装

    2:文件服务器的搭建

    3:Ftp远程文件上传实现

    4:文件静态化上传到指定的文件服务器

    5:总结

    Nginx 的安装

    1 :安装依赖
    yum install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel
    
    2:创建nginx启动用户
    > /usr/sbin/groupadd -f www ---建立用户组 www
    > /usr/sbin/useradd -g www www ---添加用户 www
    会在/home目录生成对应www的用户目录,root/www才能被访问
    
    3:下载nginx

    下载地址:<http://nginx.org/en/download.html

    > cd /usr/local/src
    > wget http://nginx.org/download/nginx-1.14.0.tar.gz
    
    4:解压缩编译安装
    > tar zxf nginx-1.14.0.tar.gz
    > cd nginx-1.14.0
    > ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module
    > make
    > make install
    
    5:设置nginx软链接或自行添加环境变量
    ln -sv /usr/local/nginx/sbin/nginx /usr/local/sbin/
    
    6:配置nginx服务并设置开机启动
    # 设置service启动的方式
    wget -P /etc/init.d/ http://down.whsir.com/downloads/nginx
    chmod +x /etc/init.d/nginx
    
    # 设置开机自启动
    chkconfig --add nginx
    chkconfig nginx on
    
    7:启动nginx
    > /etc/init.d/nginx start 启动
    > service nginx start 启动
    > service nginx stop 停止
    > service nginx restart 重启
    > service nginx status 查看nginx的经常状态
    
    8:添加环境变量(意思:就是任意目录下执行 nginx命令都有效)
    最后访问http://IP即可看到nginx欢迎页,默认欢迎页面在/usr/local/nginx/html目录下
    附:添加环境变量方法
    
    > vi /etc/profile
    添加以下内容
    > export PATH=$PATH:/usr/local/nginx/sbin
    保存退出,执行以下命令使其生效
    > source /etc/profile
    
    9:关闭防火墙
    > service iptables stop
    > chkconfig iptables off 
    
    10 : 访问

    http://192.168.189.129/

    Welcome to nginx!

    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    For online documentation and support please refer to nginx.org.
    Commercial support is available at nginx.com.

    Thank you for using nginx.

    恭喜你nginx安装成功!

    文件服务器的搭建

    1:修改nginx.conf 文件设置
    
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            
            
    	    location /pages {
              alias /home/www/pages;
              autoindex on;
            }
    
    
        }
       
    
    }
    
    

    #核心代码,搭建文件服务器指定的目录

    location /pages {
    alias /home/www/pages;
    autoindex on;
    }

    浏览器:

    如果在浏览器中去访问一个web服务器的资源目录,那么浏览器会自动去当前资源目录中查找index.html页面

    <http://192.168.31.130:8989/pages===<http://192.168.31.130:8989/pages/index.html

    Ftp远程文件上传实现

    Ftp服务器的安装

    前提

    ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通

    查看ssh和防火墙的状态

    ​ service sshd status

    ​ service iptables status

    开启ssh服务

    ​ service sshd start

    关闭防火墙

    ​ chkconfig iptables off

    测试主机和虚拟机的连通性

    ping 192.168.189.129

    安装并开启tftp和vsftpd

    root@localhost ~]# yum install tftp

    [root@localhost ~]# yum install vsftpd

    [root@localhost ~]# chkconfig vsftpd on

    [root@localhost ~]# chkconfig tftp on

    启动vsftpd 服务

    service vsftpd start

    查看vsftpd 的启动状态

    service vsftpd status

    打开21和20端口

    [root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

    [root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT

    [root@localhost ~]# /etc/rc.d/init.d/iptables save

    img 

    添加ftp用户

    [root@localhost vsftpd]# cd /etc/vsftpd

    [root@localhost vsftpd]# useradd ftpuser

    [root@localhost vsftpd]# passwd ftpuser

    修改sftpd .conf配置文件

    [root@localhost vsftpd]#vi /etc/vsftpd/vsftpd.conf

    把第一行的 anonymous_enable=YES ,改为NO

    重启vstfpd 服务
    [root@localhost upload]# service vsftpd restart
    
    windows cmd测试链接
    C:\Users\Administrator>ftp 192.168.1.112
    

    连接到 192.168.1.112。

    220 (vsFTPd 2.2.2)

    用户(192.168.1.112:(none)): ftpuser

    331 Please specify the password.

    密码:

    500 OOPS: cannot change directory:/home/ftpuser

    登录失败。

    ftp> bye

    可以看到报了个错误:500 OOPS: cannot change directory:/home/ftpuser。原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。查看如下:

    [root@localhost vsftpd]# getsebool -a | grep ftp
    

    allow_ftpd_anon_write --> off

    allow_ftpd_full_access --> off

    allow_ftpd_use_cifs --> off

    allow_ftpd_use_nfs --> off

    ftp_home_dir --> off

    ftpd_connect_db --> off

    httpd_enable_ftp_server --> off

    tftp_anon_write --> off

    [root@localhost vsftpd]#

    只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改为on就可以了。

    [root@localhost vsftpd]# setsebool ftp_home_dir 1
    [root@localhost vsftpd]# setsebool allow_ftpd_full_access 1
    
    开启SELinux

    如执行getsebool -a | grep ftp出现getsebool: SELinux is disabled的错误,需重新开启selinux

    img

    vi /etc/selinux/config
    更改为:SELINUX=enabled
    

    必须重启linux,不重启是没办法立刻开启selinux的

    重启完以后,就可以使用getsebool -a | grep ftp命令了

    再次查看

    [root@localhost vsftpd]# getsebool -a | grep ftp
    

    allow_ftpd_anon_write --> off

    allow_ftpd_full_access --> on

    allow_ftpd_use_cifs --> off

    allow_ftpd_use_nfs --> off

    ftp_home_dir --> on

    ftpd_connect_db --> off

    httpd_enable_ftp_server --> off

    tftp_anon_write --> off

    再次测试连接

    C:\Users\Administrator>ftp 192.168.1.112

    连接到 192.168.1.112。

    220 (vsFTPd 2.2.2)

    用户(192.168.1.112:(none)): ftpuser

    331 Please specify the password.

    密码:

    230 Login successful.

    ftp> ls

    200 PORT command successful. Consider using PASV.

    150 Here comes the directory listing.

    226 Directory send OK.

    ftp> bye

    221 Goodbye.

    Ok,配置成功,可以用flashxftp来进行上传文件了。

    Flashxftp上传文件

    首先在/home的目录中创建一个目录,然后设置权限为777 在这里插入图片描述

    [root@localhost home]# mkdir /home/www/pages

    [root@localhost upload]# chmod -R 777 /home/www

    然后修改vsftp的配置文件vsftpd.conf文件

    [root@localhost upload]# vi /etc/vsftpd/vsftpd.conf

    在最后添加上

    local_root=/home/www 保存,

    然后重启vsftpd服务器程序。

    service vsftpd restart

    配置完成,就可以通过ftp上传文件到/home/www/pages目录下了。

    FTP客户端的调用测试

    1:引入依赖pom.xml

     <!--ftp-->
     <dependency>
         <groupId>commons-net</groupId>
         <artifactId>commons-net</artifactId>
         <version>3.6</version>
     </dependency>
    

    2:定义工具类

    package com.itbooking.util;
    
    import org.apache.commons.net.ftp.*;
    
    import java.io.*;
    import java.net.*;
    
    public class FTPUtils {
    
       //ftp服务器地址
       private String hostname = "192.168.189.129";
       //ftp服务器端口号默认为21
       private Integer port = 21 ;
       //ftp登录账号
       private String username = "ftpuser";
       //ftp登录密码
       private String password = "mkxiaoer";
    
       private FTPClient ftpClient = null;
    
        private static String encoding = System.getProperty("file.encoding");
        
        
        public static void main(String[] args) throws IOException {
            FTPUtils fi = new FTPUtils();
            fi.initFtpClient();
            //fi.createDirecroty("2019");
            boolean flag = fi.uploadFile("/home/www/pages","39oij92po3j4234242423.html","d://d.html");
            System.out.println(flag);
        }
        
    
       /**
        * 初始化ftp服务器
        */
       private void initFtpClient() {
           ftpClient = new FTPClient();
           ftpClient.setControlEncoding("utf-8");
           try {
               ftpClient.connect(hostname, port); //连接ftp服务器
               ftpClient.login(username, password);//登录ftp服务器
               ftpClient.enterLocalPassiveMode();//文件上传成功 但是内容为空 需要加上
               ftpClient.setControlEncoding(encoding);
               ftpClient.getReplyCode(); //是否成功登录服务器
           } catch (MalformedURLException e) {
               e.printStackTrace();
           } catch (IOException e) {
               e.printStackTrace();
           }
       }
    
    
       /**
        * 上传文件
        *
        * @param pathname       ftp服务保存地址
        * @param fileName       上传到ftp的文件名
        * @param originfilename 待上传文件的名称(绝对地址) *
        * @return
        */
       public boolean uploadFile(String pathname, String fileName, String originfilename) {
           boolean flag = false;
           InputStream inputStream = null;
           try {
               inputStream = new FileInputStream(new File(originfilename));
               initFtpClient();
               ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
               if (!existFile(pathname)) {
                   createDirecroty(pathname);
               }
               ftpClient.changeWorkingDirectory(pathname);
               flag = ftpClient.storeFile(fileName, inputStream);
           } catch (Exception e) {
               e.printStackTrace();
           } finally {
               try {
                   ftpClient.logout();
               } catch (IOException e) {
                   e.printStackTrace();
               }
               if (ftpClient.isConnected()) {
                   try {
                       ftpClient.disconnect();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
               if (null != inputStream) {
                   try {
                       inputStream.close();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
           return flag;
       }
    
       /**
        * 上传文件
        *
        * @param pathname    ftp服务保存地址
        * @param fileName    上传到ftp的文件名
        * @param inputStream 输入文件流
        * @return
        */
       public boolean uploadFile(String pathname, String fileName, InputStream inputStream) {
           boolean flag = false;
           try {
               initFtpClient();
               ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
               if (!existFile(pathname)) {
                   createDirecroty(pathname);
               }
               ftpClient.changeWorkingDirectory(pathname);
               ftpClient.storeFile(fileName, inputStream);
               inputStream.close();
               ftpClient.logout();
               flag = true;
           } catch (Exception e) {
               e.printStackTrace();
           } finally {
               if (ftpClient.isConnected()) {
                   try {
                       ftpClient.disconnect();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
               if (null != inputStream) {
                   try {
                       inputStream.close();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
           return true;
       }
    
       //改变目录路径
       public boolean changeWorkingDirectory(String directory) {
           boolean flag = true;
           try {
               flag = ftpClient.changeWorkingDirectory(directory);
               if (flag) {
                   System.out.println("进入文件夹" + directory + " 成功!");
    
               } else {
                   System.out.println("进入文件夹" + directory + " 失败!开始创建文件夹");
               }
           } catch (IOException ioe) {
               ioe.printStackTrace();
           }
           return flag;
       }
    
       //创建多层目录文件,如果有ftp服务器已存在该文件,则不创建,如果无,则创建
       public boolean createDirecroty(String remote) throws IOException {
           String directory = remote + "/";
           // 如果远程目录不存在,则递归创建远程服务器目录
           if (!directory.equalsIgnoreCase("/") && !changeWorkingDirectory(directory)) {
               int start = 0;
               int end = 0;
               if (directory.startsWith("/")) {
                   start = 1;
               }
               end = directory.indexOf("/", start);
               String path = "";
               StringBuilder paths = new StringBuilder();
               while (true) {
                   String subDirectory = new String(remote.substring(start, end).getBytes("GBK"), "iso-8859-1");
                   path = path + "/" + subDirectory;
                   if (!existFile(path)) {
                       if (makeDirectory(subDirectory)) {
                           changeWorkingDirectory(subDirectory);
                       } else {
                           System.out.println("创建目录[" + subDirectory + "]失败");
                           changeWorkingDirectory(subDirectory);
                       }
                   } else {
                       changeWorkingDirectory(subDirectory);
                   }
                   paths.append("/").append(subDirectory);
                   start = end + 1;
                   end = directory.indexOf("/", start);
                   // 检查所有目录是否创建完毕
                   if (end <= start) {
                       break;
                   }
               }
           }
           return true;
       }
    
       //判断ftp服务器文件是否存在
       public boolean existFile(String path) throws IOException {
           boolean flag = false;
           FTPFile[] ftpFileArr = ftpClient.listFiles(path);
           if (ftpFileArr.length > 0) {
               flag = true;
           }
           return flag;
       }
    
       //创建目录
       public boolean makeDirectory(String dir) {
           boolean flag = true;
           try {
               flag = ftpClient.makeDirectory(dir);
           } catch (Exception e) {
               e.printStackTrace();
           }
           return flag;
       }
    
       /**
        * 下载文件 *
        *
        * @param pathname  FTP服务器文件目录 *
        * @param filename  文件名称 *
        * @param localpath 下载后的文件路径 *
        * @return
        */
       public boolean downloadFile(String pathname, String filename, String localpath) {
           boolean flag = false;
           OutputStream os = null;
           try {
               initFtpClient();
               //切换FTP目录
               ftpClient.changeWorkingDirectory(pathname);
               FTPFile[] ftpFiles = ftpClient.listFiles();
               for (FTPFile file : ftpFiles) {
                   if (filename.equalsIgnoreCase(file.getName())) {
                       File localFile = new File(localpath + "/" + file.getName());
                       os = new FileOutputStream(localFile);
                       ftpClient.retrieveFile(file.getName(), os);
                       os.close();
                   }
               }
               ftpClient.logout();
               flag = true;
           } catch (Exception e) {
               e.printStackTrace();
           } finally {
               if (ftpClient.isConnected()) {
                   try {
                       ftpClient.disconnect();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
               if (null != os) {
                   try {
                       os.close();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
           return flag;
       }
    
       /**
        * 删除文件 *
        *
        * @param pathname FTP服务器保存目录 *
        * @param filename 要删除的文件名称 *
        * @return
        */
       public boolean deleteFile(String pathname, String filename) {
           boolean flag = false;
           try {
               initFtpClient();
               //切换FTP目录
               ftpClient.changeWorkingDirectory(pathname);
               ftpClient.dele(filename);
               ftpClient.logout();
               flag = true;
           } catch (Exception e) {
               e.printStackTrace();
           } finally {
               if (ftpClient.isConnected()) {
                   try {
                       ftpClient.disconnect();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
           return flag;
       }
    }
    
    

    请注意:在进行ftp远程文件上传的时候,不需要在指明/home/www/pages目录了,因子在vsftpd.conf文件中以及配置指明了.

    文件静态化上传到指定的文件服务器

    关于商品添加的指令

    1:改造文件静态化上传到远程服务器

     // Ftp文件上传
                String dataPath = dateFinshPath.replaceAll("pages\\/","");
                boolean flag =  new FTPUtils().uploadFile(dataPath,fileName,targetFile.getAbsolutePath());
                String url = dateFinshPath+fileName;
                if(flag){
                    //更新数据库url,如果你静态资源和静态化资源要经常迁移,建议把服务器路径和资源分开存储。
                    System.out.println("ftp 上传成功---静态化成功================>"+url);
                    //MQ 广播去修改地址和状态
                    //iItemService.updateItemUrl();
                    Map<String,Object> params = new HashMap<>();
                    params.put("itemId",itemId);
                    params.put("url","http://192.168.189.129/"+url);
                    jmsMessagingTemplate.convertAndSend(new ActiveMQTopic("mq.freemaker.static.update.url"),JsonUtil.obj2String(params));
                    targetFile.delete();
                    //8.关闭Writer对象
                }else{
                    System.out.println("静态化失败================>"+url);
                }
    

    2:MQ调用修改商品的链接地址信息

      jmsMessagingTemplate.convertAndSend(new ActiveMQTopic("mq.freemaker.static.update.url"),JsonUtil.obj2String(params));
    

    3:将静态资源文件上传至文件服务器,“/home/www/pages”目录下即可。

    4:预览查询看效果。

    1553848729002

    1553848757261

    关于修改触发的指令

    关于删除触发的指令

    展开全文
  • 2.git服务器搭建在局域网文件共享区中。 3.没有复杂的权限控制,文件共享区都有访问权限。 步骤: 1.文件共享区中创建git远程仓库。 2.本地克隆远程的git仓库。 3.修改完成后提交本地的修改到远程的git仓库。 ...
  • 远程服务器git搭建

    2017-01-13 00:56:00
    远程服务器如:/var/www下创建hello.git 然后git init --bare hello.git cd hello.git会看到下面的目录和文件 然后创建可以访问git的用户 git config --global user.name "name" 例如:json git config --...
  • NAS网络文件服务器搭建流程数据存储需求与闲置存储资源什么是NASNAS的优点 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown...
  • Linux远程服务器搭建 ftp服务器

    千次阅读 2018-03-09 22:03:26
    登录远程服务器工具:Xshell(http://static.veegn.me/tools/Xshell5.exe) 文件传输工具:Xftp(http://static.veegn.me/tools/Xftp5.exe) 1.2 关闭服务器防火墙 运行命令关闭防火墙 systemctl stop firewalld....
  • Ubuntu远程服务器搭建SVN服务1.环境介绍2.确定当前系统是否安装svn3.安装SVN4.创建版本库1.进入usr目录下2.创建svn文件夹3.进入svn文件夹,并创建myrepository文件夹4.给myrepository目录及目录下所有的文件赋予可读...
  • 文件服务器搭建攻略

    2011-10-25 07:50:41
    数量激增的移动设备、多计算机家庭、宽带互联网接入、成本低廉的海量存储器以及其他许多家庭电子产品被PC所取代,比如DVD、蓝光光盘和CD播放机等媒体设备被家庭影院PC所取代,这促使人们对专用文件服务器计算机的...
  • 一 : 连接工具 下载Linux 连接工具 ... , SSH Secure File Transfer Client(用来本地与LINUX之间的文件上传及下载)   输入端口号 用户名点Connect即可,等待弹出输入密码框,输入密码即可连接 ------

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,932
精华内容 772
关键字:

远程文件服务器搭建