Java FtpClient 파일 업로드 서비스 구현
1.설치
sudo apt-get install vsftpd
2.사용자 추가(uftp)sudo useradd -d /home/uftp -s /bin/bash uftp
3.사용자 비밀번호 설정sudo useradd -d /home/uftp -s /bin/bash uftp
4.사용자 디 렉 터 리 만 들 기sudo mkdir /home/uftp
5.사용자 비밀번호 설정sudo passwd uftp
6.설정/etc/vsftpd.conf 설정 파일sudo vim /etc/vsftpd.conf
a.파일 업로드 권한 수정:여기 서 문제 가 있 습 니 다.기본 적 인 상황 에서 기본 권한 은 077 입 니 다.즉,Linux 에 대응 하 는 700 계산 규칙 은 Liux 의 권한 777-local 입 니 다.umask
local 을 설정 하지 않 았 다 면umask 파일 권한 은 업 로드 된 파일 을 가 져 올 수 있 습 니 다.서버 를 통 해 접근 할 수 없습니다(권한 이 없습니다)
b.설정 파일 끝 에 추가:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_enable=YES
c.파일 업로드 권한 설정:write_enable = YES
여기에 YES 로 설정 하지 않 으 면 기본적으로 파일 을 업로드 할 수 없습니다.
7,창설/etc/allowedusers
파일 에 허용 작업 추가,
8.서비스 재 개
sudo service vsftpd restart
9、XFTP 테스트 연결 사용
XFtp 를 사용 하여 새로운 연결 을 만 듭 니 다.선택 한 프로 토 콜 ftp 에 주의해 야 합 니 다.포트 는 21 입 니 다.계 정 비밀 번 호 를 입력 한 후에 서버 에 연결 할 수 있 습 니 다.
테스트 업로드 파일:
여기에 txt 파일 이 업로드 되 었 습 니 다.파일 의 권한 은 666 입 니 다.여 기 는 파일 을 업로드 한 후의 권한 을 설정 하기 때 문 입 니 다 localumask.
2.자바 FtpClient 파일 업로드 실현
1.Maven 의존
<!-- Apache -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
2.FtpClient 대상 원 격 연결 서버 만 들 기
FTPClient ftp = new FTPClient();
//
ftp.connect("192.168.148.128", 21);
연결 결 과 는 debug 에서 볼 수 있 습 니 다:3、FtpClient 로그 인 서버
ftp.login("uftp", "**");
//
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return ;
}
저 희 는 reply Code 와 reply String 을 판단 하여 사용자 가 로그 인 에 성 공 했 는 지 확인 할 수 있 습 니 다!4.파일 업로드 경로 와 파일 형식 수정
//
ftp.changeWorkingDirectory("/home/uftp/images/");
//
ftp.setFileType(FTP.BINARY_FILE_TYPE);
5.파일 업로드
//
FileInputStream fileInputStream = new FileInputStream(new File("D:/123.jpg"));
//
ftp.storeFile("hello.jpg", fileInputStream);
파일 업로드 완료 후 되 돌아 오 는 결 과 를 보고 업로드 성공 을 판단 합 니 다.6、로그 인 탈퇴
//
ftp.logout();
위의 절 차 는 FtpClient 를 사용 하여 파일 업로드 작업 을 마 쳤 습 니 다.3.Nginx 로 서버 그림 보기
1.nginx 프로필
server 에 그림 주소 분석 추가
location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt)${
root /home/uftp/images;
expires 7d;
}
2.Nginx 재 부팅./nginx -s reload
3.그림 보기http://192.168.148.128/hello.jpg
요약:여기에서 우 리 는 간단 한 그림 을 서버 에 업로드 하고 보 여 주 는 작은 demo 를 완 성 했 습 니 다.설정 과정 에서 주로 발생 하 는 문 제 는 파일 권한 에 관 한 문제 입 니 다.vsftpd 의 설정 파일 을 설정 하지 않 았 다 면 localumask,파일 을 성공 적 으로 업로드 하 더 라 도 nginx 를 사용 하여 탐색 할 수 없습니다.write 설정enable=YES 는 파일 을 업로드 할 수 있 도록 보증 합 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.