synology-filesync

command module
v0.0.0-...-7253c84 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2023 License: MIT Imports: 18 Imported by: 0

README

synology-filesync

Synology File Station API를 이용해 파일을 다운로드 받고, Remote Server에 전송합니다.

Github go.mod Go Version GitHub Workflow Status Go Report Card

프로젝트 개요

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
    

빌드 방법

바이너리
  1. 소스코드 가져오기

    git clone https://github.com/lolgopher/synology-filesync
    cd synology-filesync
    
  2. 바이너리 빌드

    go build
    
  3. 실행

    ./synology-filesync
    
Docker
  1. 소스코드 가져오기

    git clone https://github.com/lolgopher/synology-filesync
    cd synology-filesync
    
  2. Docker 이미지 빌드

    docker build -t synology-filesync .
    
  3. Docker 컨테이너 실행

    docker run --rm -e CONFIG_PATH="" synology-filesync   
    

기여 방법

이 프로젝트에 대한 기여는 언제나 환영합니다! 기여 방법은 다음과 같습니다.

  1. 이 저장소를 포크(fork)합니다.
  2. 새 브랜치(branch)를 만듭니다: git checkout -b topic-new_feature_branch.
  3. 변경 사항을 커밋(commit)합니다: git commit -am 'add some feature'.
  4. 브랜치에 푸시(push)합니다: git push origin topic-new_feature_branch.
  5. 풀 리퀘스트(Pull Request)를 작성합니다.

의견이나 문제가 있으면 Issues를 열어주십시오.

감사합니다!

라이선스

MIT License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL