synology-filesync
Synology File Station API를 이용해 파일을 다운로드 받고, Remote Server에 전송합니다.
프로젝트 개요
Synology의 특정 경로의 파일들을 다른 서버에 지속적으로 동기화 시키고 싶을 때 사용할 수 있습니다.
Synology File Station API 를 이용해 파일을 다운로드 합니다.
SFTP를 사용해 다른 서버에 파일을 전송합니다.
각 경로의 metadata.yaml 파일을 참고하여 파일 전송 여부를 확인합니다.
Pixelify-Google-Photos와 해당 프로젝트를 사용해 Google Photo에 무제한 백업을 중계하는 파일 리시버 서버로 활용할 수 있습니다.
빠른 시작
릴리즈 페이지에서 최신 버전을 다운로드 받아 실행하세요.
- 바이너리 파일 실행 옵션
Usage of ./synology-filesync:
-config string
Config file path
-v Show version
- config.yaml 속성
download_type: synology # Download type(synology, skip(TBD), etc...(TBD))
synology:
ip: 1.2.3.4 # FileStation IP address
port: 5001 # FileStation port
username: admin # FileStation account username
password: pass # FileStation account password
path: /photo # FileStation path to download files
upload_type: ssh # Upload type(ssh, skip(TBD), etc...(TBD))
ssh:
ip: 192.168.0.100 # SSH IP address
port: 22 # SSH port
username: user # SSH username
password: pass # SSH password
path: /DCIM # SSH path to download files
db_type: yaml # DB type(YAML, JSON(TBD), MySQL(TBD), etc...(TBD))
yaml:
filename: metadata.yaml # FileDB filename
local_path: /Users/user/synology-filesync # Local path to save download files(os.Getwd())
spare_space: 1073741824 # Spare space of upload filesystem(Byte)
sync_cycle: 12 # Sync cycle(Hour)
download_worker: 2 # Number of concurrent downloads(runtime.GOMAXPROCS(0))
download_delay: 10 # Download delay(Second)(TBD)
download_retry_delay: 2 # Download retry delay(Second)(TBD)
download_retry_count: 10 # Download retry count(TBD)
upload_delay: 10 # Upload delay(Second)
upload_retry_delay: 2 # Upload retry delay(Second)
upload_retry_count: 10 # Upload retry count
빌드 방법
바이너리
-
소스코드 가져오기
git clone https://github.com/lolgopher/synology-filesync
cd synology-filesync
-
바이너리 빌드
go build
-
실행
./synology-filesync
Docker
-
소스코드 가져오기
git clone https://github.com/lolgopher/synology-filesync
cd synology-filesync
-
Docker 이미지 빌드
docker build -t synology-filesync .
-
Docker 컨테이너 실행
docker run --rm -e CONFIG_PATH="" synology-filesync
기여 방법
이 프로젝트에 대한 기여는 언제나 환영합니다! 기여 방법은 다음과 같습니다.
- 이 저장소를 포크(fork)합니다.
- 새 브랜치(branch)를 만듭니다:
git checkout -b topic-new_feature_branch
.
- 변경 사항을 커밋(commit)합니다:
git commit -am 'add some feature'
.
- 브랜치에 푸시(push)합니다:
git push origin topic-new_feature_branch
.
- 풀 리퀘스트(Pull Request)를 작성합니다.
의견이나 문제가 있으면 Issues를 열어주십시오.
감사합니다!
라이선스
MIT License