首页 > 解决方案 > 当我将文件上传到 Vsftpd 服务器时,文件被锁定

问题描述

我正在使用 FTP 的 spring 集成将文件上传到 FTP 服务器

@Bean
    @ServiceActivator(inputChannel = "toFtpChannel")
    public FtpMessageHandler handler() {
        FtpMessageHandler handler = new FtpMessageHandler(ftpSessionFactory());
        handler.setChmod(0600);
        handler.setRemoteDirectoryExpression(new LiteralExpression("./Documents"));
        return handler;
    }

    @MessagingGateway
    public interface MyGateway {

        @Gateway(requestChannel = "toFtpChannel")
        void sendToFtp(File file);

    }

首先,我尝试通过将处理程序的 Chmod 设置为 0600 来上传文件,但出现以下错误。

java.lang.IllegalArgumentException:不支持 chmod 操作

有没有办法上传文件并使它们可读可写。另外,我是否需要在本地磁盘中创建一个文件才能将其上传到服务器,或者有没有办法让我直接在服务器中创建和编辑文件?

标签: javaspring-bootspring-integrationubuntu-18.04vsftpd

解决方案


如果您希望能够使用任何 ftp 客户端直接在服务器上读写,例如filezilla


在使用 root SSH 到您的服务器后,您可以使用以下命令将 ftp 文件夹的所有权更改为 ftp 用户:

chown -R ftpuser /var/www/html/uploadfolder/

这里,ftpuser 只是一个例子。您应该使用自己的 ftp 用户。您也可以升级并授予 html 目录的所有权。

chown -R ftpuser /var/www/html/

推荐阅读