Commit Graph
372 Commits
Author SHA1 Message Date
Kenneth Skovhede 668dabfc94 Add Hetzner and DigitalOcean regions
This PR adds the known regions from DO and Hetzner to the config output from S3Config
2026-03-12 11:20:46 +01:00
aureliandevel 30fa7e8958 fix(s3): preserve port in endpoint and fix path validation 2026-02-15 17:22:03 +11:00
Kenneth Skovhede 4c9983f677 Added Selectel to list of S3 providers 2026-02-06 14:22:39 +01:00
Kenneth SkovhedeandGitHub 1b1719e924 Merge pull request #6718 from duplicati/feature/add-office-365-backup
Add office 365 backup and restore
2026-02-01 13:12:44 +01: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 SkovhedeandGitHub 7a05afef69 Merge branch 'master' into feature/add-office-365-backup 2026-01-23 11:40:42 +01:00
Kenneth Skovhede 6ac07531bd Change webmodule to have async return value 2026-01-14 09:49:56 +01:00
dependabot[bot]andGitHub 111cf15f22 Bump the nuget group with 1 update
Bumps AWSSDK.Core from 4.0.0.21 to 4.0.3.3

---
updated-dependencies:
- dependency-name: AWSSDK.Core
  dependency-version: 4.0.3.3
  dependency-type: direct:production
  dependency-group: nuget
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-12 10:03:11 +00:00
Kenneth Skovhede 7a979464f1 Merge remote-tracking branch 'origin/HEAD' into feature/add-authentication-region-support-for-s3 2026-01-06 11:37:55 +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 83779a9486 Minor fixes
- Added Cloudflare to list of known S3 provider domains.
- Removed AWS specific naming on the help texts.
- Fixed an edge case where calculating how many files to test with an empty list would crash
- Fixed a bug with getting a safe display url for very short urls
2026-01-06 09:48:23 +01:00
Kenneth Skovhede 0d5769cc62 Shared variable parsing 2025-12-17 13:04:42 +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 0193d60ab3 Normalized exception handling in S3AwsClient.
Fixed a bug where a download could fail silently, making it look like the file was downloaded, but was empty or incomplete.
2025-12-17 13:03:54 +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 0e68f53473 Added Internxt S3 hostnames 2025-12-12 12:04:13 +01:00
Kenneth Skovhede e9d1630751 Updated list of known hosts 2025-11-28 12:04:47 +01:00
Kenneth Skovhede a9f3dc1137 Add support for scheme in url for S3
This adds support for supplying a url for the hostname which will also toggle the default SSL setting.

Removed providers MyCloudyPlace and dinCloud as they appear to no longer operate.
2025-11-21 11:23:27 +01:00
Kenneth Skovhede 5e9c608588 Added support for Rabata.io as an S3 provider 2025-11-21 11:01:38 +01:00
Kenneth Skovhede 1ea74a3c63 Updated to .NET10 2025-11-14 15:05:39 +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 Skovhede b4e80abab1 Auto-correct S3 hostname
This PR updates the S3 backend to automatically remove leading and trailing `/` characters so upgrades are less likely to encounter the error, as the previous version did not fail on such hostnames.

The check still captures cases where the user attempts to input a path or URL into the hostname field.
2025-11-02 09:07:12 +01:00
Kenneth Skovhede 4b1d2f1538 Fixed a warning 2025-09-25 11:15:43 +02:00
Kenneth SkovhedeandGitHub 060d83e0d9 Merge branch 'master' into feature/simplify-webmodule-lookups 2025-09-23 13:14:44 +02:00
Smyja 067ac5554d fix(S3): validate endpoint does not contain path 2025-09-11 08:43:04 +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 2822e95626 Simplify webmodule lookups
This PR adds the lookup data to the module output, such that the FE does not need to call a webmodule to get the dictionaries with lookup values.
2025-09-05 10:49:20 +02:00
Kenneth Skovhede 69157d7ba8 Add override for sigv4 hash in AWS client 2025-08-18 10:03:12 +02:00
Kenneth Skovhede bee147c79e Don't lowercase base64 2025-08-15 11:34:08 +02:00
Kenneth Skovhede a673bd0fab Fixed pre-calc SHA256 on AWS S3
This fixes pre-calculating the SHA256 hash for AWS SDK requests to S3.
This fixes an issue where a throttled stream would not be throttled correctly, because the AWS library would read the throttled stream twice (once for hashing, and once for transmitting).

To ensure compatibility with Wasabi S3, the hash is also lowercased.
2025-08-15 10:59:38 +02:00
Kenneth Skovhede 21061b15a6 Fixed more incorrect nullability in AWS S3 2025-08-08 15:16:22 +02:00
Kenneth Skovhede 79c03d4601 Avoid null values in commonprefixes (defective nullable marker in AWS library) 2025-08-08 14:07:14 +02:00
Kenneth SkovhedeandGitHub ba7bee397c Merge branch 'master' into 0nbrsf-codex/find-outdated-packages 2025-08-07 10:48:59 +02:00
Kenneth Skovhede c1bef62d8b Bumped AWSSDK libraries to be in sync 2025-08-07 10:47:35 +02:00
Kenneth Skovhede 3a294d95fb Fixed compile warnings 2025-08-07 08:06:24 +02:00
Kenneth Skovhede 1692428406 Fix build by reverting breaking package updates 2025-06-25 20:03:02 +02:00
Kenneth Skovhede 819af9e66f Update .NET dependencies 2025-06-24 07:51:26 +02:00
Kenneth Skovhede bf9c0e1a95 Added Mega S4 endpoints to list of destinations 2025-06-17 09:14:06 +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 f73a1bcfcd Forward slash to backslash 2025-05-16 10:25:27 +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 b6decf41ad Added missing commit 2025-05-09 13:49:11 +02:00
Kenneth Skovhede 42c3ecd009 Fix throttle stream issues
Some providers, B2, Idrivee2, JottaCloud and S3 (AWS version) needs a checksum for the content.

To calculate this content the libraries will calculate the hash by reading the stream. But since the stream can be throttled, the hash calculation is throttled.

In some cases the contents are buffered, so the transfer is done at full speed, but the hashing at throttled speed. The average speed is the same, but network traffic is bursty, which it should not be with a throttle.

Also added option to disable signing with AWS Sigv4 as that interferes with the throttled stream. It is not currently possible to pass the sha-256 hash to the Sigv4 code, so it will always read the entire (potentially throttled) stream before sending the contents, causing unwanted delays. Use the new option `--s3-disable-payload-signing` to disable v4 signing.
2025-05-09 13:46:45 +02:00
Marcelo C. 18b2df2e7e Switching to constant rather than string literal 2025-05-08 10:08:21 -03:00
Kenneth Skovhede 631a34066b Report all available storage classes 2025-04-24 21:46:02 +02:00
Kenneth Skovhede 46f5efd178 Merge branch 'master' into feature/support-glacier-style-non-readable-files 2025-04-23 22:37:31 +02:00
Kenneth Skovhede 8aee23c278 Updated Minio to 6.0.4 2025-04-15 00:00:55 +02:00