Commit Graph
141 Commits
Author SHA1 Message Date
Kenneth Skovhede 05f2702c82 Added support for renaming files on backends that support it.
This PR updates existing backends to implement the `IRenameEnabledBackend` interface, allowing for more efficient file renaming operations. The implementation varies by backend, with some using native rename operations and others falling back to copy-and-delete patterns.
2026-01-27 13:08:20 +01:00
Kenneth Skovhede 55e52d17fa Added support for setting the lock mode in Azure 2026-01-20 10:51:44 +01:00
Kenneth Skovhede 6cdaa8d936 Added check to ensure lock is applied 2025-12-16 21:53:16 +01:00
Kenneth Skovhede 0f81b42146 Add support for remote locks
This PR adds support for locking files if the backend supports it.

To activate locking, set the option `--file-lock-duration=30D` and the backup will lock the files.

If the database is rebuilt with the intention of continuing the backups, use the option `--repair-refresh-lock-info` which will update lock information in the database after recreating the database.

The locking works by asking the backend to lock files after a backup has completed.

The implementation keeps track of which files are currently assigned a lock and prevents attempting to delete the files that are currently locked.

Note that the bucket should not have a default lock policy as Duplicati needs to finish the backup before the locking is applied.

In this initial version, Azure Blob Storage, B2, S3 and iDrive are supported with locking.

The CLI is updated to allow setting locks on a specific version. The backend tool is updated to allow setting locks on specific files.
2025-12-14 17:17:48 +01:00
Kenneth SkovhedeandGitHub b5397e72e1 Merge pull request #6632 from duplicati/feature/timeouts-for-azure-blob-storage
Added override for AzureBlobStorage's internal timeout handling.
2025-11-20 11:06:27 +01:00
Kenneth Skovhede 1ea74a3c63 Updated to .NET10 2025-11-14 15:05:39 +01:00
Kenneth Skovhede da35b10455 Added override for AzureBlobStorage's internal timeout handling.
This is related to #6629
2025-11-13 11:58:13 +01:00
Kenneth Skovhede 012aeed7de Add dynamic streaming toggle
This PR adds a dynamic property so a backend can signal if it supports streaming, based on the settings.

This is currently used for the File backend, so that toggling `--use-move-for-put` will disable streaming on the backend instead of relying on the `--disable-streaming-transfers` flag.
2025-11-03 12:48:37 +01:00
Kenneth SkovhedeandGitHub ba7bee397c Merge branch 'master' into 0nbrsf-codex/find-outdated-packages 2025-08-07 10:48:59 +02:00
Kenneth Skovhede 3a294d95fb Fixed compile warnings 2025-08-07 08:06:24 +02:00
Kenneth Skovhede 819af9e66f Update .NET dependencies 2025-06-24 07:51:26 +02:00
Kenneth Skovhede 6031b4de8b Update Test method to check for write permissions
This PR moves the check from the FTP backend into shared code, so all backends will now check for read/write permissions when using the "Test" button.

For situations where write permissions are not required (like restore or verify) there is a flag on the v2 API that indicates if the connection was established, so the UI can show a message suggesting that it is possible to proceed, if the current UI operation does not require write permissions.

This fixes #2473
2025-05-21 17:19:27 +02:00
Kenneth SkovhedeandGitHub 292107b9de Merge pull request #6262 from duplicati/feature/fix-dbtool-tests-should-fail
Check exit code in dbtool tests
2025-05-16 19:01:47 +02:00
Kenneth Skovhede 97ef8137ed Fixed some compile issues on Windows 2025-05-16 15:51:49 +02:00
Carl Johnsen 8be97bcefd Whitespace changes 2025-05-16 10:22:51 +02:00
Carl Johnsen 04153d2c12 Removed Microsoft.DotNet.Analyzers.Compatibility from csproj's as it's deprecated. 2025-05-16 09:53:26 +02:00
Kenneth Skovhede 5f2f20f3b3 Only Cold and Archive are treated as archived by default. 2025-04-25 12:45:52 +02:00
Kenneth Skovhede 0d5bd3027e Fixed reporting all available tiers 2025-04-24 21:45:06 +02:00
Kenneth Skovhede c4e6891e31 Don't cast null to access tier 2025-04-24 21:31:38 +02:00
Kenneth Skovhede fa55a1ed23 Support Azure Access Tier
This adds support for Azure Access Tiers, similar to AWS Storage Class.

This update adds the option to set a custom storage class, as well as the option to define which storage classes are considered archive classes.
2025-04-24 21:14:47 +02:00
Kenneth Skovhede 631c80d6a8 Cleaned up some option names 2025-03-24 10:17:26 +01:00
Kenneth Skovhede 41d2b22015 Adde option names to helper 2025-03-21 09:13:48 +01:00
Kenneth Skovhede 597c7e1fa3 Implemented nullable for the backends 2025-03-21 08:54:24 +01:00
Kenneth Skovhede 133237e56c Patched up AliyunOSS and AzureBlob with timeouts and new options helpers 2025-03-19 23:18:48 +01:00
Marcelo C. 16aff9dc0b Corrected implementation around exception handling
This implementation ensures the exception for FolderMissingException is treated properly in async enum circumventing the limitation of not having a yield within a try catch block.
2025-03-07 10:32:37 -03:00
Marcelo C. d3bc413b94 Explicit permission + force overwrite 2025-03-05 23:13:02 -03:00
Marcelo C. fe5c536e53 Azure Library Upgrade and Fixes
- Removed obsolete Microsoft.Azure.* references which were deprecated and replaced with Azure.Storage.*
- Cleaned up unused references
- Changes to code due to obsolete classes
- Patched some missing ConfigureAwait(false) on calls that could freeze the UI
- Merged in new async List changes.
2025-03-05 16:38:25 -03:00
Kenneth Skovhede 3337e6a3cc Fixed review comment 2025-02-18 09:18:09 +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 SkovhedeandGitHub 997891525a Updated license-updater to update csproj files (#5898)
* Updated license-updater to update csproj files

* License updates
2025-01-22 21:04:19 +01:00
Kenneth SkovhedeandGitHub 9464caf622 Feature/update license 2025 (#5851)
* Fixed some minor whitespace issues

* Updated all copyright to 2025
2025-01-07 09:40:39 +01:00
Kenneth SkovhedeandGitHub 2fac31bd60 Clean Azure Blob options (#5829)
This removes Azure Blob options that has been deprecated for years.
The option `--azure-blob-container-name` was not used, so it was removed as well.
2025-01-02 18:51:00 +01:00
Kenneth SkovhedeandGitHub 447c2b3238 Feature/improve ci testing (#5781)
* Added options to insert delays in backend tester

* Added wait delays to Azure and GoogleDrive to see it the CI is more stable with small delays

* Added more debug output to the backend tester

* Fixed dropbox reporting OAuth quota errors, when it is likely Dropbox API quota errors

* Implemented exception detection on AzureBlob backend

* Also showing sleep times in output

* Fixed a bug with the dropbox quota response

* Fixed error message to report correct number of files

* Fixed suppressed warning
2024-12-20 16:10:08 +01:00
Kenneth Skovhede 61ea36091a Added DNSNames as async 2024-10-02 09:37:52 +02:00
Kenneth Skovhede 586c08522e Implemented async method for Test, CreateFolder and Quota in all backends.
Still missing the List and DNSHostnames.
The AsyncRequest class is also preventing many backends from fully upgrading.
2024-10-01 09:30:02 +02:00
Kenneth Skovhede ecf2e8b551 Implemented DeleteAsync on all backends 2024-09-29 23:04:54 +02:00
Kenneth Skovhede e3e3d1305f Implemented async version of Get for all backends. 2024-09-29 22:00:57 +02:00
Suguru Hirahara 6f1a913eef Remove conjugation - supply 2024-08-13 08:07:28 -04:00
Suguru Hirahara d4057e57c5 Make backend descriptions consistent 2024-08-02 12:05:49 -04:00
Suguru Hirahara 1eb3ce0ab8 Update strings on AzureBlob/AzureBlobBackend.cs 2024-07-30 00:10:08 -04:00
Suguru Hirahara a35f21a76d Add periods between double quotes 2024-07-29 23:51:10 -04:00
Suguru Hirahara 998f2cb351 Remove a redundant whitespace character from AzureBlob/Strings.cs 2024-07-29 23:45:28 -04:00
Suguru Hirahara ad6208fcf6 Add periods to strings whose suffix is 'Long' on AzureBlob/Strings.cs 2024-07-29 22:57:26 -04:00
Suguru Hirahara 43337dca90 Move strings 'Description' and 'DisplayName' up to the top inside the block 2024-07-29 02:23:07 -04:00
Suguru Hirahara ae57dee0f0 Remove redundant space characters from *.cs and *.html 2024-07-26 00:10:31 -04:00
Grzegorz Łagocki 9b19bac7da Add Copyright Property to *.csproj files 2024-07-09 00:37:18 +02:00
Kenneth Skovhede d318467b09 Removed Spatial library 2024-04-05 15:24:27 +02:00
Kenneth Skovhede 473c6cbbb8 Merge commit '4f577c65a4d8806f79637c50c21ca3a683c5a07a' into feature/kestrel-avalonia-upgrade 2024-03-04 12:21:53 +01:00
Kenneth Skovhede cfbfdad2ab Fixes for Azure Blob 2024-03-01 14:30:28 +01:00
Kenneth Skovhede aa20088c39 Tool based upgrade of all projects with some manual update 2024-03-01 14:29:54 +01:00