`

使用SAMBA 访问分享文件

阅读更多
/**
     * samba共享文件读取
     *
     * @param smbPath     smbPath文件路径
     * @param projectCode 项目编号
     * @return
     */
    public static ResponseMessage getSambaFile(String smbPath, String projectCode) {
        ResponseMessage responseEntity = new ResponseMessage();
        responseEntity.setFlag(true);
        try {
            BioCloudProperties bioCloudProperties = ApplicationContextProvider.getContext().getBean(BioCloudProperties.class);
            String samplePdfFilePath = bioCloudProperties.getSampleInformationConfig().getSamplePdfFilePath();
            String[] sambaConfig = bioCloudProperties.getCustomizationConfig().getSambaConfig();
            UniAddress address = UniAddress.getByName(sambaConfig[0]);
            //sambaConfig[0]  分享者的ip, sambaConfig[1] 认证的用户名, sambaConfig[2] 认证的密码
            NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(sambaConfig[0], sambaConfig[1], sambaConfig[2]); 
            SmbSession.logon(address, auth);
            SmbFile sf = new SmbFile("smb://" + sambaConfig[0] + smbPath, auth);
            long size = 2 * 1024 * 1024 * 1024;
            InputStream inputStream = sf.getInputStream();
            byte[] bytes = new byte[1024];
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
            String filePath = String.format("%s/%s", samplePdfFilePath, format.format(new Date()));
            Files.createDirectories(Paths.get(filePath));
            filePath = filePath + File.separator + projectCode + smbPath.substring(smbPath.lastIndexOf("."));
            LOG.info("上传到临时目录的文件路径:{}", filePath);
            FileOutputStream outputStream = new FileOutputStream(filePath);
            while (inputStream.read(bytes) != -1) {
                size = size - 1024;
                if (size < 0) {
                    responseEntity.setFlag(false);
                    break;
                }
                outputStream.write(bytes);
            }
            responseEntity.setMessage(filePath);
            outputStream.close();
            inputStream.close();
        } catch (SmbException e) {
            LOG.info("smbException:{}", e.getMessage());
            responseEntity.setFlag(false);
        } catch (MalformedURLException e) {
            LOG.info("MalformedURLException:{}", e.getMessage());
            responseEntity.setFlag(false);
        } catch (UnknownHostException e) {
            LOG.info("UnknownHostException:{}", e.getMessage());
            responseEntity.setFlag(false);
        } catch (IOException e) {
            LOG.info("IOException:{}", e.getMessage());
            responseEntity.setFlag(false);
        }
        return responseEntity;
    }

 

分享到:
评论

相关推荐

    Samba服务器配置及访问Samba共享

    * 文件共享:使用Samba服务器共享文件夹和文件 * 打印机共享:使用Samba服务器共享打印机 * 用户认证:使用Samba服务器来认证用户身份 七、Samba服务器优点 * 跨平台兼容性:Samba服务器可以在Linux和Windows之间...

    samba服务器实现文件共享

    我们可以在 Windows 主机上搜索 Linux 的 IP 地址,然后双击“DUANLINUX”,进入共享文件夹,就可以实现共享文件的增加、删除、复制等功能。 知识点 5: 防火墙设置 在使用 Samba 服务进行文件共享时,我们需要关闭...

    麒麟系统SAMBA共享文件使用手册.wps

    麒麟系统SAMBA共享文件使用手册

    Linux系统下用samba工具实现文件共享及共享打印机的配置

    Linux系统下用Samba工具实现文件共享及共享打印机的配置是指使用Samba工具在Linux系统下实现文件共享和共享打印机的配置,这个过程需要对Samba工具的配置管理、服务器设置、用户管理、共享添加、命令行配置、加密...

    Linux 文件共享 samba 配置

    在使用 samba 服务时,需要注意防火墙的问题,防火墙可能会阻止共享文件的访问。如果不能访问共享文件,需要停止防火墙服务或配置防火墙规则来允许共享文件的访问。 samba 服务是 Linux 系统中实现文件共享的重要...

    SAMBA问题文件无法写入及多组权限设置

    SAMBA配置文件共享服务器中常见的问题是文件无法写入和多组权限设置。下面我们将对这两个问题进行详细的分析和解决。 问题1:文件无法写入 在Samba配置文件中,我们可以看到[homes]和[share]两个_section_,它们...

    操作系统安全:samba匿名访问配置(实验二).docx

    在Windows环境下,可以通过网络映射的方式访问Samba服务器的共享文件。在运行框中输入UNC路径`\\172.172.0.10\home\shareuser`,即可打开共享目录。 总的来说,这个实验旨在让操作者了解如何在Samba服务器上设置...

    samba 如何上传文件

    - 如果需要在 Windows 端使用如 Source Insight 这样的工具编辑位于 Samba 共享中的文件,确保这些工具具有足够的权限访问远程文件。 - 如果遇到错误提示“there was an error opening project.”,这通常意味着...

    Samba文件共享SambaFilesharing.apk

    Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器; 我们在Windows网络中,看到共享...

    samba访问例子1

    本教程将详细讲解如何通过Samba实现跨平台的文件访问,以“samba访问例子1”为例进行演示。 首先,我们要理解Samba的基本概念。Samba是一个开源软件,它实现了SMB/CIFS(Server Message Block/Common Internet File...

    SAMBA方式读取局域网共享文件BCB6.0

    3. **读取局域网共享文件**: 在局域网中,通过SAMBA协议,开发者可以编写程序来访问其他计算机上共享的文件和目录。这通常涉及到网络编程,包括处理TCP/IP连接、身份验证、权限控制等。 4. **列表显示子文件夹和...

    CentOS Linux中Samba文件共享服务器的构建

    可以使用 Windows 客户机来访问 Samba 服务器共享的文件夹,实现文件共享的功能。 本文档详细介绍了 CentOS Linux 中 Samba 文件共享服务器的构建过程,包括网络配置、Samba 安装、配置 Samba 服务器和启动 Samba ...

    在Windows与Linux下Samba共享文件夹以及映射的详细使用说明

    在Windows和Linux操作系统中可以使用Samba来访问共享资源。 1. Linux系统下访问远程共享资源 使用smbclient命令来访问远程共享资源,例如: smbclient //192.168.16.249/test001 -U user001 2. Windows系统下...

    Linux下的文件共享服务器Samba安装文件及其配置说明 samba-4.14.5.tar

    在Linux环境中,Samba是一个非常重要的工具,它允许Linux系统与Windows系统之间进行文件和打印服务的共享。本文将详细讲解如何在CentOS系统上安装Samba 4.14.5并进行配置。 首先,我们需要了解Samba的核心概念。...

    samba是文件共享的服务器

    在Linux环境中,可以使用`smbclient`命令行工具或图形界面的`Nautilus`文件管理器来访问Samba共享。而在Windows系统中,用户可以通过网络邻居或文件资源管理器找到并连接到Samba服务器。在连接时需要提供正确的...

    samba服务器配置+隐藏文件+虚拟用户

    Samba是一种允许用户在装有Windows不同版本的操作系统之间共享文件和打印机的软件包。它能够使Linux/Unix机器充当Windows网络中的一个成员,实现与Windows环境下的文件和打印共享。本文将详细介绍如何配置Samba...

    samba文件一起来

    《Samba文件共享详解》 Samba是一款强大的网络文件共享软件,它允许Linux/Unix系统与Windows系统之间进行无缝的数据交换。在这个“samba文件一起来”的主题中,我们将深入探讨Samba的核心概念、功能以及如何在Linux...

    Java对Samba进行上传与下载文件-jcifs

    Java对Samba进行上传与下载文件的技术主要涉及Java编程、Samba服务器以及jcifs库的使用。Samba是一个开源软件,允许Linux/Unix系统与Windows系统之间进行文件共享,而jcifs是Java的一个库,它提供了对SMB(Server ...

    Centos7 samba 文件共享.docx

    CentOS 7 中 Samba 文件共享配置与实现 本文档将详细介绍 CentOS 7 中 Samba 文件共享的配置和实现,包括 Samba 服务的安装、配置文件的编辑、开机自动启动、防火墙配置、安全策略配置等方面的知识点。 一、Samba ...

    Samba文件共享服务器管理

    SMB协议允许计算机通过网络共享文件、打印机和其他资源。Samba服务器可以作为文件共享服务器,也可以作为Samba客户端,支持NetBIOS协议,确保Windows系统能访问Linux上共享的文件。 安装Samba服务需要安装三个核心...

Global site tag (gtag.js) - Google Analytics