Commit Graph
30 Commits
Author SHA1 Message Date
Kenneth Skovhede c0f40e19ca Updated copyright year to 2026 across the project 2026-04-16 15:21:24 +02:00
Kenneth Skovhede 8a08b35546 Extended support for remote sources
This PR adds support for using Box, Dropbox, GoogleDrive, SharepointV2, MicrosoftGroups, and OneDrive as remote sources.

For GoogleDrive, this requires full permissions and not just the regular OAuth access token.

Also extended S3 and SMB to actually look up a file if requested, which makes it possible to rely on the backup exclusion files, even when using remote sources. (SSH/SFTP does not currently support this).
2026-01-28 14:37:51 +01:00
Kenneth Skovhede 0b79785f07 Add support for an authentication region for S3
This adds support for the option `s3-authentication-region` which can be used to control the authentication region, which is required for some Minio setups.

This fixes #6562
2026-01-06 09:54:49 +01:00
Kenneth Skovhede c4be4fe10c Fixed Minio locking implementation to not look at the bucket. 2025-12-17 13:04:21 +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 Skovhede 0497de7e9f Revert MinIO to version 6.0.0
This fixes #6489
2025-09-06 15:34:38 +02:00
Kenneth Skovhede 8aee23c278 Updated Minio to 6.0.4 2025-04-15 00:00:55 +02:00
Kenneth Skovhede a6aa7c94af Fixed Minio after update 2025-04-14 23:43:29 +02:00
Kenneth Skovhede 1172cb9f26 Update Minio from 3.13 to 6.0.2 2025-04-14 17:57:38 +02:00
Kenneth Skovhede e89897829d Updated Jottacloud backend 2025-03-21 14:14:55 +01:00
Kenneth Skovhede 4b2c0be974 Updated S3 and iDrive 2025-03-21 13:36:39 +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
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 bb5fd80a29 Implemented support for some backends as sources: SSH, CIFS, and S3 2025-02-17 14:01:08 +01:00
Kenneth SkovhedeandGitHub b6981d8668 This fixes errors with the Minio backend not re-throwing exceptions (#5897)
* This fixes errors with the Minio backend not re-throwing exceptions

* Throwing the correct exception ...
2025-01-22 23:29:27 +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 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 8bdb85e261 Implemented RenameAsync on all backends supporting rename 2024-09-29 23:21:50 +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
Kenneth Skovhede 40dd3c6816 Updated all license mentions to MIT 2024-02-28 15:45:30 +01:00
verhoek 8d782bd0c8 Make codacy happier. 2019-11-26 22:19:11 +01:00
verhoek 707ee587af Use same exception handling cases for Minio as for the AWS client. 2019-11-26 21:59:53 +01:00
verhoek 0ff63913ed Implemented remaining methods.
Add remove object method.
Add dns host.
Added rename method.
2019-11-25 22:44:16 +01:00
verhoek 8f0002465e Add get object to minio client. 2019-11-24 22:53:37 +01:00
verhoek 2243c7d609 Added put object to minio s3 client. 2019-11-24 11:21:00 +01:00
verhoek 0cc79c5a6e Implemented addbucket for minio. 2019-11-23 09:45:06 +01:00
verhoek 259dd75953 Added listbucket for minio client 2019-11-22 22:37:23 +01:00
verhoek a0b20bfd92 Created s3 client interface. 2019-11-21 22:37:32 +01:00
verhoek 7b859792fe Start writing MinioWrapper using Minio. 2019-11-21 22:37:09 +01:00