项目实训(八)—文件结构生成及Java通过SSH-2连接远程服务器

一、文件结构生成:

根据用户ID和视频名称VideoName,在服务器生成一个用于保存原视频、中间结果和最终结果的目录结构。

——EasyCut
  ——ID
    ——ID_VideoName
      ——Original_Video  #存储原视频
      ——SceneSeg_Video  #存储场景划分结果
      ——Key_Frame       #存储视频摘要结果
      ——SceneFeature    #存储视频摘要后视频的场景特征
      ——SceneSimilar    #存储相似场景的视频聚类结果
      ——Resources       #人脸检测结果
        ——video
        ——result
        ——gif
        ——featureMean
        ——featureDB
        ——faceS

代码实现:

create_files.py:

import os
def create_dir(ID,VideoName):
    filename=ID+'_'+VideoName
    path='/opt/data/private/xuyunyang/EasyCut/'
    path0=path+ID+'/'+filename
    path1=path0+'/Original_Video'
    path2=path0+'/SceneSeg_Video'
    path3=path0+'/Resources'
    path4=path0+'/Key_Frame'
    path41=path3+'/video'
    path42=path3+'/result'
    path43=path3+'/gif'
    path44=path3+'/featureDB'
    path45=path3+'/featureMean'
    path46=path3+'/faceS'
    path47=path3+'/ScenePhoto'
    path5=path0+'/SceneFeature'
    path6=path0+'/SceneSimilar'

    isExists=os.path.exists(path0)

    if not isExists:
        os.makedirs(path0)
        os.makedirs(path1)
        os.makedirs(path2)
        os.makedirs(path3)
        os.makedirs(path4)
        os.makedirs(path41)
        os.makedirs(path42)
        os.makedirs(path43)
        os.makedirs(path44)
        os.makedirs(path45)
        os.makedirs(path46)
        os.makedirs(path47)
        os.makedirs(path5)
        os.makedirs(path6)

if __name__ == '__main__':
    parser = argparse.ArgumentParser("Create Files")
    parser.add_argument('ID')
    parser.add_argument('VideoName')
    args = parser.parse_args()
    create_dir(args.ID,args.VideoName)

二、SSH-2实现java连接远程服务器并进行视频传输及命令执行

1、SSH:

Secure Shell Protocol,安全外壳协议,是专门为了远程登录会话和其他网络服务提供的安全性协议,是一种非对称加密协议,使用SSH协议可以有效的防止远程连接会话的时候出现信息泄密,在数据传输的时候SSH会先对联机的数据包通过加密技术进行加密处理,加密后在进行数据的传输,确保了传输中的安全性,SSH服务主要提供两个服务功能:一个是远程联机的SSH服务,一个是借助SSH协议来传输数据的SFTP服务。

2、SSH原理:

① 服务端开启ssh服务监听22端口
② 客户端发送联机请求(携带IP和端口)
③ 客户端服务端进行联机加密认证
④ 认证通过联机成功

3、SSH的两种认证方式:

(1) 基于密码口令的认证:
只要知道服务器的SSH连接账号和密码(当然也要知道服务器的IP和端口(默认22)),就可以通过客户端远程登录到主机了,所以的传输过程都是加密的。

(2) 基于秘钥的安全认证:
① 运行SSH服务,生成密钥对
② 客户端发送公钥到服务端(通过ssh-copy-id或者其他的方式)
③ 客户端发送连接请求
④ 服务端进行对密钥的验证
⑤ 验证成功服务端将用公钥加密质询,发送给客户端
⑥ 客户端用自己的私钥解密质询
⑦ 客户端将解密后的质询发送给服务端
⑧ 服务端验证质询
⑨ 验证通过,建立连接

4、导入jar包:

需要导入3个jar包:
请添加图片描述

5、代码实现:

注:使用用户名密码方式远程登录linux服务器

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.log4j.Logger;
import  org.apache.commons.lang.StringUtils;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;


public class Connection_to_Sever {
   
    private static final Logger logger = Logger.getLogger
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值