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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
|
%global _empty_manifest_terminate_build 0
Name: python-Backup2Cloud
Version: 1.0.17
Release: 1
Summary: Backup specific folders to and upload to a cloud provider
License: Apache Software License
URL: https://github.com/otapi/Backup2Cloud
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ef/a5/6a7aacfa7059773fab06c16a566a7748d7678fd2e239b3e85714a4950bc7/Backup2Cloud-1.0.17.tar.gz
BuildArch: noarch
Requires: python3-google-api-python-client
Requires: python3-google-auth-httplib2
Requires: python3-google-auth-oauthlib
Requires: python3-py7zr
Requires: python3-dirtools2
%description
# Backup 2 Cloud
Backup specific folders and upload to a cloud provider. The uploaded files are 7zipped and encrypted locally. Uploads only those packages which were changed since last backup.
Currently only Google Drive is supported, but can handle multiple accounts.
Important: The tool can run only on machine with UI (with JavaScript enabled browser). Google doesn't allow to reach personal Google Drive files without UI: 'User data cannot be accessed from a platform without a UI because it requires user interaction for sign-in.'
## What's new?
### 1.0.17
- New: wait some time after deleting a file from GDrive to wait for proper freespace info
### 1.0.16
- Fixed: Upload were not skipped when cheskum matched
- New: creates log file Backup2Cloud.log in home directory
## Install and Setup
Requirements: Python 3.7 with pip and setuptools. If not installed, do it on Debian:
`sudo apt install python3-venv python3-pip python3-setuptools`
Install the tool's package via pip:
`python -m pip install --upgrade Backup2Cloud`
Run first time:
`python -m Backup2Cloud`
### INI file
Open with a texteditor the ini file at your home directory (as shown on the first run above).
Follow notes in the ini file and setup one or more places to backup.
### .exclude file
If you want to exclude subfolders or files, you can specify them by the same patterns as .gitignore files. Open with a texteditor the .exclude file at your home directory (as shown on the first run above).
Follow notes in the .exclude file and add folder/file patterns to exclude
### Enable Google Drive API
Enable the OAuth Client ID at Google Drive API via:
https://developers.google.com/drive/api/v3/quickstart/python
(Or you can manage your already exisiting Google APIs here: https://console.developers.google.com/apis/)
In resulting dialog click DOWNLOAD CLIENT CONFIGURATION and save the file credentials.json to your home directory (as shown on the first run above).
Run the tool second time:
`python -m Backup2Cloud`
Let's follow the url (open it in a browser on the same) to authorize the API for each cloudspace sections: 'Please visit this URL to authorize this application'. Complete the access approval in a browser.
## Usage
Run a backup manually, or add the backup run to scheduler (e.g. cron):
`python -m Backup2Cloud`
Restore all backups manually to current folder:
`python -m Backup2Cloud -d *`
Command line interface:
```
Backup2Cloud - Backup specific folders to and upload to a cloud provider
usage: __main__.py [-h] [-d DOWNLOAD] [-log LOGLEVEL] [destination]
positional arguments:
destination Optional destination folder at Download mode. Example:
C:\output, default=current folder
optional arguments:
-h, --help show this help message and exit
-d DOWNLOAD, --download DOWNLOAD
Download and extract all (*) or only the specified ID
entry of the INI to Destination folder. Example: -d
folder1
-log LOGLEVEL, --loglevel LOGLEVEL
Provide logging level. Example --loglevel debug,
default=info
```
%package -n python3-Backup2Cloud
Summary: Backup specific folders to and upload to a cloud provider
Provides: python-Backup2Cloud
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-Backup2Cloud
# Backup 2 Cloud
Backup specific folders and upload to a cloud provider. The uploaded files are 7zipped and encrypted locally. Uploads only those packages which were changed since last backup.
Currently only Google Drive is supported, but can handle multiple accounts.
Important: The tool can run only on machine with UI (with JavaScript enabled browser). Google doesn't allow to reach personal Google Drive files without UI: 'User data cannot be accessed from a platform without a UI because it requires user interaction for sign-in.'
## What's new?
### 1.0.17
- New: wait some time after deleting a file from GDrive to wait for proper freespace info
### 1.0.16
- Fixed: Upload were not skipped when cheskum matched
- New: creates log file Backup2Cloud.log in home directory
## Install and Setup
Requirements: Python 3.7 with pip and setuptools. If not installed, do it on Debian:
`sudo apt install python3-venv python3-pip python3-setuptools`
Install the tool's package via pip:
`python -m pip install --upgrade Backup2Cloud`
Run first time:
`python -m Backup2Cloud`
### INI file
Open with a texteditor the ini file at your home directory (as shown on the first run above).
Follow notes in the ini file and setup one or more places to backup.
### .exclude file
If you want to exclude subfolders or files, you can specify them by the same patterns as .gitignore files. Open with a texteditor the .exclude file at your home directory (as shown on the first run above).
Follow notes in the .exclude file and add folder/file patterns to exclude
### Enable Google Drive API
Enable the OAuth Client ID at Google Drive API via:
https://developers.google.com/drive/api/v3/quickstart/python
(Or you can manage your already exisiting Google APIs here: https://console.developers.google.com/apis/)
In resulting dialog click DOWNLOAD CLIENT CONFIGURATION and save the file credentials.json to your home directory (as shown on the first run above).
Run the tool second time:
`python -m Backup2Cloud`
Let's follow the url (open it in a browser on the same) to authorize the API for each cloudspace sections: 'Please visit this URL to authorize this application'. Complete the access approval in a browser.
## Usage
Run a backup manually, or add the backup run to scheduler (e.g. cron):
`python -m Backup2Cloud`
Restore all backups manually to current folder:
`python -m Backup2Cloud -d *`
Command line interface:
```
Backup2Cloud - Backup specific folders to and upload to a cloud provider
usage: __main__.py [-h] [-d DOWNLOAD] [-log LOGLEVEL] [destination]
positional arguments:
destination Optional destination folder at Download mode. Example:
C:\output, default=current folder
optional arguments:
-h, --help show this help message and exit
-d DOWNLOAD, --download DOWNLOAD
Download and extract all (*) or only the specified ID
entry of the INI to Destination folder. Example: -d
folder1
-log LOGLEVEL, --loglevel LOGLEVEL
Provide logging level. Example --loglevel debug,
default=info
```
%package help
Summary: Development documents and examples for Backup2Cloud
Provides: python3-Backup2Cloud-doc
%description help
# Backup 2 Cloud
Backup specific folders and upload to a cloud provider. The uploaded files are 7zipped and encrypted locally. Uploads only those packages which were changed since last backup.
Currently only Google Drive is supported, but can handle multiple accounts.
Important: The tool can run only on machine with UI (with JavaScript enabled browser). Google doesn't allow to reach personal Google Drive files without UI: 'User data cannot be accessed from a platform without a UI because it requires user interaction for sign-in.'
## What's new?
### 1.0.17
- New: wait some time after deleting a file from GDrive to wait for proper freespace info
### 1.0.16
- Fixed: Upload were not skipped when cheskum matched
- New: creates log file Backup2Cloud.log in home directory
## Install and Setup
Requirements: Python 3.7 with pip and setuptools. If not installed, do it on Debian:
`sudo apt install python3-venv python3-pip python3-setuptools`
Install the tool's package via pip:
`python -m pip install --upgrade Backup2Cloud`
Run first time:
`python -m Backup2Cloud`
### INI file
Open with a texteditor the ini file at your home directory (as shown on the first run above).
Follow notes in the ini file and setup one or more places to backup.
### .exclude file
If you want to exclude subfolders or files, you can specify them by the same patterns as .gitignore files. Open with a texteditor the .exclude file at your home directory (as shown on the first run above).
Follow notes in the .exclude file and add folder/file patterns to exclude
### Enable Google Drive API
Enable the OAuth Client ID at Google Drive API via:
https://developers.google.com/drive/api/v3/quickstart/python
(Or you can manage your already exisiting Google APIs here: https://console.developers.google.com/apis/)
In resulting dialog click DOWNLOAD CLIENT CONFIGURATION and save the file credentials.json to your home directory (as shown on the first run above).
Run the tool second time:
`python -m Backup2Cloud`
Let's follow the url (open it in a browser on the same) to authorize the API for each cloudspace sections: 'Please visit this URL to authorize this application'. Complete the access approval in a browser.
## Usage
Run a backup manually, or add the backup run to scheduler (e.g. cron):
`python -m Backup2Cloud`
Restore all backups manually to current folder:
`python -m Backup2Cloud -d *`
Command line interface:
```
Backup2Cloud - Backup specific folders to and upload to a cloud provider
usage: __main__.py [-h] [-d DOWNLOAD] [-log LOGLEVEL] [destination]
positional arguments:
destination Optional destination folder at Download mode. Example:
C:\output, default=current folder
optional arguments:
-h, --help show this help message and exit
-d DOWNLOAD, --download DOWNLOAD
Download and extract all (*) or only the specified ID
entry of the INI to Destination folder. Example: -d
folder1
-log LOGLEVEL, --loglevel LOGLEVEL
Provide logging level. Example --loglevel debug,
default=info
```
%prep
%autosetup -n Backup2Cloud-1.0.17
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-Backup2Cloud -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.17-1
- Package Spec generated
|