java - 当我将文件上传到 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 操作
有没有办法上传文件并使它们可读可写。另外,我是否需要在本地磁盘中创建一个文件才能将其上传到服务器,或者有没有办法让我直接在服务器中创建和编辑文件?
解决方案
如果您希望能够使用任何 ftp 客户端直接在服务器上读写,例如filezilla
:
在使用 root SSH 到您的服务器后,您可以使用以下命令将 ftp 文件夹的所有权更改为 ftp 用户:
chown -R ftpuser /var/www/html/uploadfolder/
这里,ftpuser 只是一个例子。您应该使用自己的 ftp 用户。您也可以升级并授予 html 目录的所有权。
chown -R ftpuser /var/www/html/
推荐阅读
- amazon-web-services - 如何在 CloudFormation 模板中设置 AWS Cognito 用户密码以进行测试
- python - 自定义模型字段输出格式
- ruby - Ruby 中括号内的空格有多重要?
- macos - 将本地 docker 镜像存储在云端
- css - 无论内容如何,将项目放在一行
- r - 删除字符 / 包括它之后的所有单词
- python - 如何在 Python 中一次创建一个数据点的直方图?
- bpmn - 一个进程应该在 Camunda 中存在多长时间
- python - SQLite DB 显示已排序,但我未按排序顺序拉取行
- windows - 通过 Windows 商店安装时,Windows 应用程序摄像头无法正常工作