Kenneth Skovhede
26bbe6a577
Added setup step for source providers.
...
This enables a fail-early approach, where the remote source loads the initial results.
By storing the `IAsyncEnumerable` it is possible to not perform any additional remote calls, even with the initial probing call.
This makes it possible to detect the absence of sources, so the backup can be aborted if sources are missing.
2025-02-24 12:50:58 +01:00
Kenneth Skovhede
4e73be1806
Fixed path conversion on Windows
2025-02-21 16:25:18 +01:00
Kenneth Skovhede
9dfe977d3f
Changed logic so the source providers are now logically mounted into the source directory structure.
...
This fixes the restore issues as all sources will now appear as if they were originally part of the source file system.
The backend implementation has now been simplified so the backends only return names of entries with no path information. Most backends already do this, but the S3 backends did not, so this was fixed as well.
This also clears up the interfaces, so the backend does not know about the `ISourceProviderEntry`. All mapping is done by the `BackendSourceProvider`, making it simpler to support other backends as sources.
2025-02-21 16:06:55 +01:00
Carl-Johannes Johnsen and GitHub
5aa06f3cd4
Merge pull request #5983 from carljohnsen/performance/restore-parallel-download
...
Performance/restore parallel download
2025-02-21 14:29:54 +01:00
Kenneth Skovhede
cd512ea7dd
Changed remote path prefix to > to avoid clash with literal string prefix @
2025-02-21 13:25:00 +01:00
Kenneth Skovhede
1716d09b51
Fixed source providers for S3, CIFS, and SSH.
...
Made the SMBShareConnection slightly more robust.
Introduced v2 List API to S3 backend, currently it retains v1 as the default.
Changed S3 backends to not recurse, potentially making smaller listings. This option can be disabled if it breaks things.
Added support for relative paths in the SSH backend.
2025-02-21 13:20:52 +01:00
Kenneth Skovhede
5a4fcaa6d7
Added tool to work with remote sources
2025-02-21 11:51:45 +01:00
Carl Johnsen
98e572714d
Added a comment about downloaders in the teardown of BackendManager.Handler
2025-02-21 10:08:21 +01:00
Carl Johnsen
7612b5cce3
Ensured proper synchronization of operations in BackendManager.Handler
2025-02-21 10:07:41 +01:00
Carl Johnsen
c164181ec2
BackendManager.GetOperation's were unintentionally still synchronized.
2025-02-21 10:07:09 +01:00
Kenneth Skovhede
80d60c0982
Fix Uri ToString()
...
Fixed a case where an extra leading slash would be removed when converting a parsed Uri back to a string.
2025-02-19 22:23:53 +01:00
Carl Johnsen
beefbf2a46
Removed some unused variables from the BackendManager
2025-02-19 16:12:58 +01:00
Carl Johnsen
9919d86e9b
Updated VolumeDownloader to use the new BackendManager.GetDirectAsync() method
2025-02-19 16:12:42 +01:00
Carl Johnsen
374741fc6d
Added BackendManager.GetDirectAsync(), which downloads a file without decrypting it
2025-02-19 16:11:55 +01:00
Kenneth Skovhede
a9f328ae95
Add back missing Windows example script.
...
This adds back the missing `run-script-example.bat`.
It also makes the output conditional, so the Windows builds get the `.bat` and others get the `.sh` version.
2025-02-19 16:11:37 +01:00
Carl Johnsen
2c06820281
Made the BackendManager.GetOperations' decryption methods static and public so the restores VolumeDecryptor can use the same code.
2025-02-19 16:09:32 +01:00
Carl Johnsen
e2e930b2d7
Reworked BackendManager.Handler to handle multiple downloads in parallel
2025-02-19 15:55:59 +01:00
Carl Johnsen
864ce59c4a
Reworded pending uploads to active to better reflect that the uploads are in progress
2025-02-19 15:55:13 +01:00
Kenneth Skovhede
b1488dae0c
Switched to vssadmin for listing VSS enabled drives
2025-02-19 15:48:00 +01:00
Kenneth Skovhede
bf80845292
Fixed a rare startup error
2025-02-19 15:46:22 +01:00
Kenneth Skovhede
36ba547a92
Added the @ prefix to backend paths
2025-02-19 14:20:03 +01:00
Kenneth Skovhede
cf5b4bb24d
Added support for Wmic based Windows VSS snapshots.
...
Refactored code a bit to be easier to understand.
2025-02-19 14:00:14 +01:00
Kenneth Skovhede
ac603a4d8f
Renamed SourceFolders to SourceEntries as it can contain files as well
2025-02-18 22:32:37 +01:00
Kenneth Skovhede
73d0ad905f
Fixed USN support
2025-02-18 22:12:37 +01:00
Kenneth Skovhede
12d0c9710d
Added additional fix for VSS
2025-02-18 17:17:16 +01:00
Kenneth Skovhede
f61a1d0ad8
Fixed Windows VSS support
2025-02-18 15:13:46 +01:00
Carl Johnsen
a0d5096ebc
Reworked the "Volume loop" of the restore network to handle Backends themselves, rather than using the BackendManager.
...
This allows for tighter control over which process performs which action, allowing them more easily to run in parallel.
2025-02-18 09:25:20 +01:00
Carl Johnsen
17e2c0b9cf
Added ConfigureAwait(false)
2025-02-18 09:20:28 +01:00
Carl Johnsen
ce60b807c8
Added additional profiling logging
2025-02-18 09:18:46 +01:00
Kenneth Skovhede
7031bc57b6
Adding ConfigureAwait(false) to all async enumerations
2025-02-18 09:18:36 +01:00
Kenneth Skovhede
3337e6a3cc
Fixed review comment
2025-02-18 09:18:09 +01:00
Carl Johnsen
93756cd74b
Whitespace fixes
2025-02-18 09:17:08 +01:00
Carl Johnsen
6600e418a7
Fixed a bug during profile logging
2025-02-18 09:14:17 +01:00
Carl Johnsen
9f3f15615d
Exposed spawning multiple backends from the BackendManager
2025-02-18 09:10:13 +01:00
Kenneth Skovhede
a99aa87dbb
Fixed issue with Windows paths being stored in extended format
2025-02-17 19:51:26 +01:00
Kenneth Skovhede
0f9669b273
Final conversion to async backends
...
This PR is the final change, where all backends are now purely implemented with async interfaces.
The code changes here replace the LIST call with an async version. This affect all backends (and then some) but the changes are mostly mechanical rewrites of the code.
In many places, the backeds were already prepared for async output, in other some glue was needed.
To reduce the scope of this change, some backends simply report a synchronous result as an async list.
2025-02-17 16:45:51 +01:00
Kenneth Skovhede
0e8df7ccd8
Removed unsupported code
2025-02-17 14:05:21 +01:00
Kenneth Skovhede
bb5fd80a29
Implemented support for some backends as sources: SSH, CIFS, and S3
2025-02-17 14:01:08 +01:00
Kenneth Skovhede
989ba60211
Updated license copyright years
2025-02-17 08:52:01 +01:00
Kenneth Skovhede
a621bb3d14
Fixed issue after merge
2025-02-17 08:19:19 +01:00
Kenneth Skovhede
6bbc93b8df
Merge remote-tracking branch 'origin/master' into feature/alternate-source-provider
2025-02-16 16:37:12 +01:00
Kenneth Skovhede
356d117b86
Ensure directory paths end with a separator
2025-02-16 16:08:28 +01:00
Kenneth Skovhede
9501470d0d
Added listen interface to startup message
2025-02-14 11:28:22 +01:00
Kenneth Skovhede
439d10b53d
Improve shell-script arguments
2025-02-12 09:23:07 +01:00
marceloduplicati and GitHub
820c0d61cc
Merge pull request #5963 from marceloduplicati/feature/backblaze-429-observance
...
Adding 429 observance to backend
2025-02-11 14:02:15 -03:00
Kenneth Skovhede and GitHub
4d80fb7320
Merge pull request #5959 from duplicati/feature/sync-tool-executable
...
Made the synctool an executable
2025-02-11 09:27:09 +01:00
Kenneth Skovhede and GitHub
5b66d06370
Merge pull request #5961 from duplicati/feature/do-not-escape-http-form-parameters
...
Do not encode http form extra parameters.
2025-02-11 09:26:07 +01:00
Kenneth Skovhede
0260a061bb
Made the synctool an executable
2025-02-10 21:37:52 +01:00
Kenneth Skovhede and GitHub
e1c121d09f
Merge pull request #5951 from duplicati/feature/deprecate-mega-backend
...
Added warning when using the Mega backend
2025-02-10 21:07:39 +01:00
Kenneth Skovhede and GitHub
d4e659ce0d
Merge pull request #5954 from duplicati/feature/improve-trayicon
...
Improved TrayIcon detached.
2025-02-10 21:07:00 +01:00