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
-
소스코드 가져오기
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를 열어주십시오.
감사합니다!