Commit Graph
3969 Commits
Author SHA1 Message Date
Kenneth Hsu f2bcf470d2 Add factory method to get default AmazonS3Config instance.
This adds a method to get a default instance of AmazonS3Config.  This
accomplishes two key things:

1. Previously, the documentation for the default buffer size (8192) was
   inconsistent with the actual default value (65536).  This was due to
   differences in the property values betwen the instance used to
   generate the documentation, and that used in the actual backend
   client.

2. Disables the use of Amazon Resource Names (ARN).  This does not seem
   critical to our application.  Moreover, if the UseArnRegion property
   is not set, accessing it triggers an expensive operation (~30
   seconds) to get the region endpoint.  This causes the loading of the
   backend modules to take a long time and run afoul of HTTP request
   timeouts, causing the application to think that no backends are
   available.

   The previous version of the AWSSDK.S3 library that we used did not
   have this property, so this was not an issue until we started
   migrating away from .NET Framework.

This fixes #4543.
2021-06-28 09:52:13 -07:00
Thomas SuckowandKenneth Hsu 060b4886da Just use the nuget version of the sqlite library
This fixes #4526.
2021-06-28 09:52:13 -07:00
Valentin eda3666bc7 Add support for mega.nz two fa authentication 2021-06-26 13:39:05 +02:00
Kenneth Hsu de2a651763 Fix bug in PutAsync implementations.
Without await, the using statement can dispose the Stream before the
call to PutAsync completes, resulting in an ObjectDisposedException.

This fixes #4556.
2021-06-12 15:12:13 -07:00
Serge 5404fed634 Do not use StreamWriter 2021-06-02 19:35:40 +10:00
Serge 955dbebc03 Check contents of written test file
Before performing test write, reset stream Position to 0, otherwise test performs zero-byte write.
When performing test read, verify that file was written correctly.
2021-06-01 02:51:42 +10:00
warwickmmandGitHub ed86cca3e4 Merge pull request #4509 from sergethedev17/feature/azure-storage-sastoken
Add ability to provide SAS token for Azure backend
2021-05-30 10:15:43 -07:00
Kenneth SkovhedeandGitHub 8ee90fdf64 Merge pull request #4506 from warwickmm/mono_ssh_avoid_ecdsa_algorithms
Avoid ECDSA algorithms when using SFTP with Mono
2021-05-29 12:22:52 +02:00
Kenneth SkovhedeandGitHub 368a3a9a9b Merge branch 'master' into feature/azure-storage-sastoken 2021-05-29 12:20:30 +02:00
Kenneth SkovhedeandGitHub 2bcb0f511c Merge pull request #4513 from warwickmm/fix_bug_handlings_deprecated_options
Fix bug in handling deprecated Azure and S3 options
2021-05-29 12:17:44 +02:00
Kenneth Hsu e90eb3b2a3 Create custom Exception for remote list verification failures.
Previously, we would catch any Exception thrown by VerifyRemoteList and
perform an auto-cleanup (if specified in the options).  However, we
should only perform the auto-cleanup if VerifyRemoteList detected an
issue with the uploaded files.  Otherwise, an unrelated exception can
cause the database repair to be performed unnecessarily.  In the case of
a connection issue, this can leave the database in a corrupted state.

This fixes #4516.
2021-05-20 13:42:41 -07:00
Kenneth Hsu a5fbee0335 Simplify exception handling when testing for ECDSA support.
.NET 5 moves the responsibility to the operating system, and since
SSH.NET currently relies on the ECDsaCng class, we will simply interpret
all exceptions to mean lack of ECDSA support.
2021-05-18 12:19:49 -07:00
Kenneth Hsu c246976fbb Cache knowledge of ECDSA support using static field.
This is simpler, and would potentially allow us to query this without an
instance.
2021-05-18 10:18:14 -07:00
Kenneth Hsu 22564bb2a3 Cache knowledge of ECDSA support. 2021-05-18 10:07:33 -07:00
Kenneth Hsu bfa240c8ec Assume we have ECDSA support if our test throws exception.
It's possible that our test will no longer be valid (e.g., due to
changes in SSH.NET), so we don't want the backend to fail if our test
is no longer valid.
2021-05-18 09:06:00 -07:00
Kenneth Hsu 90dfce81b2 Construct instance of ECDsaCng to test for ECDSA support.
This more closely reflects the SSH.NET code.
2021-05-18 09:00:40 -07:00
Kenneth Hsu 3d8817608e Test for ECDSA support explicitly.
The previous implementation could possibly fail for reasons unrelated to
ECDSA support.
2021-05-16 17:29:00 -07:00
marodev a156c511da Reorder parameters of previously wrongly refactored string interpolation 2021-05-16 09:12:00 +02:00
Kenneth Hsu 29f1d2c3cb Fix bug handling deprecated Azure and S3 options.
In pull request #4443, we renamed some of the Azure and S3 options to
use dashes '-' instead of underscores '_' for consistency.  However, our
treatment of the options in the backend constructors still required that
the underscore versions be present even if the dashed version was
provided.

Now, we allow for either option to be present, but the value for the
dashed version will take precedence.
2021-05-15 14:37:53 -07:00
marodev e87688d9d3 Fix ReSharper's "Use string interpolation expression" / Code Smell 2021-05-15 17:02:57 +02:00
Serge 5b3d85fc25 Add authentication using Shared access signature token
Allow users to authenticate using a Shared access signature (SAS) token. SAS tokens are more secure because they:
 * have a start and expiry date/time
 * can be restricted to specified IP addresses
 * can limit access scope to a single Storage blob container
2021-05-15 21:22:50 +10:00
Serge 5172119864 Bugfix read non-present key from dictionary
The lines with null-coalescing operator (??) throw an exception when the dictionary does not contain the first key (eg azure_account_name). Exception thrown: "The given key was not present in the dictionary".
2021-05-15 21:03:26 +10:00
Kenneth Hsu 8d99be95d8 Make period in regex filters match newline characters.
By default, the dot (.) element matches every character _except_ the
newline character.  This causes issues with files that have a newline
character in the name.  For example, they are excluded when restoring
the containing directory.

By specifying the RegexOptions.Singleline option, the dot (.) element
will match every character, including the newline character.

This fixes #4508.
2021-05-14 18:34:41 -07:00
Kenneth Hsu b80845a176 Enumerate items to list before modifying collection. 2021-05-11 15:40:33 -07:00
Kenneth Hsu 3e2103335b SSH: Avoid advertising support for ECDSA algorithms with Mono.
SSH.NET relies on the System.Security.Cryptography.ECDsaCng class for
ECDSA algorithms, which is not implemented in Mono (as of 6.12.0.144).
This prevents clients from connecting if one of the ECDSA algorithms is
chosen as the host key algorithm.  In the event that this causes a
connection failure, we will prevent the client from advertising support
for ECDSA algorithms and make another connection attempt.

Related forum discussion:

	https://forum.duplicati.com/t/release-2-0-6-1-beta-2021-sftp-failure-synology/12358
2021-05-11 12:42:34 -07:00
warwickmmandGitHub 7b4f475762 Merge pull request #4502 from samuel-w/master
Make file extension compression hints case-insensitive.
2021-05-09 14:29:59 -07:00
samuel-wandGitHub fa79b406a2 Improve comment 2021-05-09 15:16:31 -05:00
samuel-w d05d83cf4b Add comment 2021-05-08 15:51:10 -05:00
Kenneth SkovhedeandGitHub a2fba718ba Merge pull request #4501 from warwickmm/fix_typo_in_script_examples
Fix typo in example scripts
2021-05-08 11:50:19 +02:00
Kenneth SkovhedeandGitHub a43f7c8c91 Merge pull request #4503 from samuel-w/dar-sql
Add Disk Archive files to compression hints
2021-05-08 11:48:59 +02:00
Kenneth SkovhedeandGitHub 8ce34c084b Merge pull request #4488 from warwickmm/file_backend_should_truncate
Make File backend truncate existing files when overwriting
2021-05-08 11:40:23 +02:00
samuel-w bfa24581c1 Add Disk Archive files to compression hints 2021-05-08 01:45:07 -05:00
samuel-w d5c83d2af3 Compare file extensions case insensitively.
Fixes https://github.com/duplicati/duplicati/issues/4493
2021-05-08 01:14:08 -05:00
Kenneth Hsu 2d5d300234 Fix typo in example scripts. 2021-05-06 14:03:00 -07:00
TopperDELandGitHub 3ed7d4b163 fix: Typo 2021-05-06 20:14:53 +02:00
TopperDEL fbf559c109 fix: Remove unnecessary strings 2021-05-06 09:06:25 +02:00
TopperDEL 4609743e24 fix: Command line options 2021-05-06 08:57:43 +02:00
TopperDEL 001329bcd8 fix: fetch parameters from options via TryGetValue 2021-05-06 08:56:39 +02:00
warwickmmandGitHub 50ed059e11 Merge pull request #4469 from tygill/fix/ms-graph-throttling
Fix OneDrive throttling and respect retry-after header.
2021-05-04 09:42:52 -07:00
TopperDEL 6253dcad40 feat: Rename all parameters and UIs
Existing configurations will not be affected
2021-05-03 10:36:39 +02:00
TopperDEL a3d9d4c6ba feat: Rename C# and Project-files to Storj 2021-05-03 09:50:29 +02:00
TopperDEL 7e07cf5b6a feat: Verify encryption passphrase 2021-04-29 15:02:00 +02:00
TopperDEL d923cfaa6e feat: Further rename 2021-04-29 14:10:46 +02:00
TopperDEL 96c28e8e32 feat: Rename Tardigrade to Storj DCS 2021-04-29 14:09:05 +02:00
TopperDEL 9bb892ef04 feat: Update satellites-list 2021-04-29 14:06:16 +02:00
TopperDEL d9a4b939b1 build: Update to latest uplink.NET 2021-04-29 13:58:11 +02:00
Kenneth Hsu c14ace0d68 Make File backend truncate existing files when overwriting.
The implementations of ISystemIO.FileOpenWrite call File.OpenWrite,
which does not truncate the existing file.  As such, if we overwrite a
larger file with a smaller one, tail remnants of the existing file will
remain.

Since most of the put operations involve unique filenames, this is only
a problem when overwriting existing files (e.g.,
duplicati-verification.json).

This fixes a regression introduced in revision 71c6aca8a7 ("Fixed IO
calls in Filebackend") from pull request #3456.  The previous
implementation called File.Open with FileMode.Create, which truncates
existing files.

This fixes #4486.
2021-04-20 16:16:00 -07:00
Thomas Suckow 1b72212533 Dnslite doesn't work on mac/linux in .net5 2021-04-10 13:39:53 -07:00
Thomas Suckow ecb0249259 dotnet no longer provides a method for a string to hashalgorithm
* Also fix up not diposing of hashers
2021-04-04 11:17:13 -07:00
Thomas Suckow d8ddd6982c Refactor VolumeHash 2021-04-04 08:28:44 -07:00