1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# config.toml - Configuração completa do RustDriveSync
#===============================================================================
# CONFIGURAÇÕES GERAIS
#===============================================================================
[]
# Nível de log: trace, debug, info, warn, error
= "info"
# Arquivo de log (deixe vazio para apenas stdout)
# log_file = "./logs/rustdrivesync.log"
# Formato do log: "text" ou "json"
= "text"
#===============================================================================
# PASTA DE ORIGEM
#===============================================================================
[]
# Caminho absoluto da pasta a sincronizar
= "/home/usuario/documentos"
# Incluir subpastas recursivamente
= true
# Ignorar arquivos ocultos (começam com .)
= true
# Seguir links simbólicos
= false
# Padrões de arquivos/pastas a ignorar (glob patterns)
= [
# Arquivos temporários
"*.tmp",
"*.temp",
"*.swp",
"*~",
# Logs
"*.log",
# Build artifacts
"target/",
"node_modules/",
"__pycache__/",
"*.pyc",
".venv/",
# Version control
".git/",
".svn/",
".hg/",
# IDE/Editor
".idea/",
".vscode/",
"*.sublime-*",
# OS files
".DS_Store",
"Thumbs.db",
"desktop.ini",
]
#===============================================================================
# GOOGLE DRIVE
#===============================================================================
[]
# Arquivo com credenciais OAuth2 (baixado do Google Console)
= "./credentials.json"
# Arquivo onde tokens serão salvos
= "./token.json"
# ID da pasta de destino no Google Drive (encontre na URL do Drive)
# Exemplo: https://drive.google.com/drive/folders/1ABC123xyz
= "1ABC123xyz"
# OU nome da pasta (será criada na raiz se não existir)
# target_folder_name = "Backup-Documentos"
# Escopos OAuth2 necessários
= [
"https://www.googleapis.com/auth/drive.file"
]
#===============================================================================
# SINCRONIZAÇÃO
#===============================================================================
[]
# Modo de operação: "once" (única vez) ou "watch" (monitoramento contínuo)
= "once"
# Intervalo entre verificações em modo watch (segundos)
= 300
# Como resolver conflitos quando arquivo já existe no Drive
# - "overwrite": substitui o arquivo no Drive
# - "skip": mantém o arquivo do Drive, não faz upload
# - "rename": renomeia o arquivo local antes do upload (arquivo_1.txt)
= "overwrite"
# Tamanho máximo de arquivo para upload (MB)
= 100
# Tamanho do chunk para upload resumível (MB)
= 5
# Número máximo de uploads simultâneos
= 4
# Verificar integridade após upload (compara MD5)
= true
# Manter estrutura de pastas no destino
# - true: preserva hierarquia de diretórios local no Google Drive
# Exemplo: projeto/src/main.rs → RustDriveSync/projeto/src/main.rs
# - false: todos os arquivos ficam na pasta raiz
# Exemplo: projeto/src/main.rs → RustDriveSync/main.rs
= true
# Deletar arquivos no Drive quando deletados localmente
# CUIDADO: pode causar perda de dados!
= false
#===============================================================================
# RETRY E RESILIÊNCIA
#===============================================================================
[]
# Número máximo de tentativas por arquivo
= 3
# Delay inicial entre tentativas (segundos)
= 1
# Fator de multiplicação do delay (exponential backoff)
= 2.0
# Delay máximo entre tentativas (segundos)
= 60
#===============================================================================
# NOTIFICAÇÕES (Opcional)
#===============================================================================
[]
# Habilitar notificações
= false
# Notificar quando sync completar com sucesso
= true
# Notificar em caso de erro
= true
# Tipo de notificação: "desktop" ou "webhook"
= "desktop"
# URL do webhook (se type = "webhook")
# webhook_url = "https://hooks.slack.com/services/..."
#===============================================================================
# ESTADO E CACHE
#===============================================================================
[]
# Arquivo de estado (rastreia arquivos sincronizados)
= "./state.json"
# Salvar estado a cada N arquivos sincronizados
= 10
# Limpar estado de arquivos deletados após N dias
= 30