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 and GitHub
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
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
Kenneth Skovhede
473c6cbbb8
Merge commit '4f577c65a4d8806f79637c50c21ca3a683c5a07a' into feature/kestrel-avalonia-upgrade
2024-03-04 12:21:53 +01:00
Kenneth Skovhede
40dd3c6816
Updated all license mentions to MIT
2024-02-28 15:45:30 +01:00
Thomas Suckow
d528703fe7
Merge branch 'master' into experiment/net5-split
...
# Conflicts:
# .github/workflows/tests.yml
# Duplicati.sln
# Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
# Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
# Duplicati/CommandLine/Duplicati.CommandLine.csproj
# Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
# Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
# Duplicati/Library/Backend/AzureBlob/AzureBlobWrapper.cs
# Duplicati/Library/Backend/Mega/Duplicati.Library.Backend.Mega.csproj
# Duplicati/Library/Backend/Mega/packages.config
# Duplicati/Library/Backend/OAuthHelper/Duplicati.Library.OAuthHelper.csproj
# Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
# Duplicati/Library/Backend/Tardigrade/Properties/AssemblyInfo.cs
# Duplicati/Library/Backend/Tardigrade/packages.config
# Duplicati/Library/Common/Duplicati.Library.Common.csproj
# Duplicati/Library/Common/IO/SystemIOWindows.cs
# Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj
# Duplicati/Library/Modules/Builtin/packages.config
# Duplicati/Library/Utility/Utility.cs
# Duplicati/License/Duplicati.License.csproj
# Duplicati/Server/Duplicati.Server.csproj
# Duplicati/Server/packages.config
# Duplicati/UnitTest/Duplicati.UnitTest.csproj
2022-02-22 19:04:01 -08: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
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
Kenneth Hsu
83ac03843d
Fix spelling errors in comments.
...
In doing so, we also normalized some line endings.
2019-12-14 09:52:55 -08:00
Kenneth Hsu
afab61a05b
Use pattern matching to simplify casts.
2019-10-19 10:15:38 -07:00
Kenneth Hsu
9aab376b9f
Remove unused property.
2019-05-14 19:29:38 -07:00
Kenneth Hsu
53cc2452e0
Remove unused property.
2019-05-14 19:29:38 -07:00
Kenneth Hsu
adea2f9aec
Disable warning about unused constructors.
2019-05-14 19:29:38 -07:00
Kenneth Hsu
7773c42f56
Disable warning about unused class.
2019-05-14 19:29:37 -07:00
Sean Templeton
b02b19e683
Change Put method name to PutAsync
2019-03-17 18:28:45 -05:00
Sean Templeton
7f09c7af27
Update Box and Rackspace Cloud Files backends for async Put
2019-03-05 21:08:25 -06:00
Sean Templeton
0c122ff550
Change IBackend and IStreamingBackend to return Task for Put()
2019-03-03 21:43:10 -06:00
Kenneth Hsu
8dd3aeaf26
Use invariant culture in calls to ToLower and ToUpper.
2018-12-11 21:21:07 -08:00
verhoek
b2cc18426c
Renamed Library.IO to Library.Common.IO.
...
Moved basic Platform functions to Library.Common.Platform.
Turned IO_OS into property within Library.Common.
2018-11-02 21:34:07 +01:00
verhoek
71c6aca8a7
Fixed IO calls in Filebackend.
...
Moved FileEntry to Library.IO due to AlphaFS not implementing
System.IO.FileInfo/DirectoryInfo.
2018-11-01 17:56:48 +01:00
Kenneth Hsu
0d23302220
Use ordinal case-insensitive comparison instead of ToLower.
2018-09-19 15:21:59 -07:00
Kenneth Hsu
f12858e6a5
Mark fields that shouldn't be reassigned as readonly.
...
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2018-05-25 10:04:52 -07:00
Kenneth Skovhede
842fd96543
Implemented a new logging system that is more transparent and allows a more granular way of picking log messages.
...
Added ID's to each log message and each exception to allow later introduction of a Knowledgebase service that explains each error in more detail.
2018-03-15 09:12:34 +01:00
Kenneth Skovhede
bd863016fa
Added support for returning multiple DNS names for cache invalidation.
...
Updated most backends to return the actual DNS names for cache invalidation.
2018-02-26 11:37:10 +01:00
Rune Henriksen
fc77b476fc
changed from NYI to null returns. Added check to skip DNS check if no DNSName is provided
2018-02-21 22:38:01 +01:00
Rune Henriksen
00292953c3
added DNSName getter on Backend interface and added NotImplementedException methods on each backend class
2018-02-18 00:18:44 +01:00
Kenneth Skovhede and GitHub
36aadc4ad1
Merge pull request #2910 from warwickmm/refactor/remove_redundant_tostring
...
Remove redundant calls to ToString
2017-11-27 08:50:00 +01:00
Kenneth Hsu
5fb1958ceb
Remove redundant calls to ToString.
2017-11-26 15:44:34 -08:00
Kenneth Hsu
8810e0130d
Make string comparisons use ordinal (binary) sort rules.
...
These string comparisons should not be culture-aware.
2017-11-26 11:19:54 -08:00
Tyler Gill
38883285ee
Change IBackend.List() to return IEnumerable instead of List
...
By changing to IEnumerable, it is possible to iterate only a portion of the list, which is useful when not all entries are needed (e.g., when testing a connection).
All existing backends have been updated, and any which were able to be changed to yield return results in a straightforward way now do.
Many backends had a try/catch in the List() method. Due to the fact that yield returns can't be placed within a try/catch block, these have been refactored to either scope the try/catch to the parts that (should) be the only places throwing exceptions, so that exceptions are still caught and handled.
Note that lazy evaluation may cause some changes in behavior - exceptions that were previously thrown at the point of invokation of List() may now be thrown while it is being enumerated.
I believe this will not be problematic though, as the only well-known exception seems to be FolderMissingException, which should be thrown by Test(), but TestList() attempts to enumerate the list to force this exception.
Any places that require the legacy behavior can get it by simply converting the lazy enumerable to a List()
2017-09-25 23:17:45 -06:00
Kenneth Skovhede
55e230ff49
Reworked the way the AllowWriteBuffering flag is set to fix errors caused by ContentLength not being set.
2017-05-17 10:59:07 +02:00
Kenneth Skovhede
a029890409
Implemented better default error messsages
2017-01-09 11:35:38 +01:00
Kenneth Skovhede
0c68daff6c
Fixed all whitespace to be 4 spaces instead of tabs
2016-09-15 11:39:27 +02:00
Kenneth Skovhede
3005594b38
Merge branch 'master' into nuget_setup
...
# Conflicts:
# Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
# Duplicati/Library/Backend/S3/Duplicati.Library.Backend.S3.csproj
# Duplicati/Library/Backend/S3/S3Wrapper.cs
# thirdparty/CoCoL/CoCoL.dll
# thirdparty/SSH.NET/Renci.SshNet.dll
2016-06-27 15:25:52 +02:00
Kenneth Skovhede
d0711011a2
Rewrote all WebRequest code to use AsyncHttpRequest, and normalized usage such that WebResponse objects are always correctly disposed.
2016-04-16 11:12:28 +02:00
Kenneth Skovhede
59cc0005a3
Removed unused references and updated most libraries to come from NuGet sources instead of being provided in the thirdparty library
2016-01-29 10:47:39 +01:00
Kenneth Skovhede
7cf987b9af
Moved the MD5 calculating stream into a generic hash-calculating stream
2015-12-05 11:26:34 +01:00
Kenneth Skovhede
3149064cde
Merge branch 'no_more_resx'
2015-01-20 21:45:54 +01:00
Kenneth Skovhede
8d13e698eb
Updated copyright notices
2015-01-20 21:44:52 +01:00
Kenneth Skovhede
16c791f0b5
Removed all resx files, now using Duplicati.Library.Localization exclusively
2015-01-20 21:07:24 +01:00
Kenneth Skovhede
738c111397
Added detection for throwing FileMissingException to all backends
2014-11-15 15:00:12 +01:00
Kenneth Skovhede
86abc7565a
Added locally allocated buffers for copystream to reduce pressure on allocator
2014-11-10 18:38:18 +01:00
Kenneth Skovhede
f935af9968
Reworked the ReadWriteTimeout usage to avoid premature timeouts on Mono
2014-07-11 01:07:48 +02:00
Kenneth Skovhede
1d39773126
Updated CloudFiles auth url
2013-10-28 22:42:45 +01:00
Kenneth Skovhede
d3f4058057
Fixed various minor issues with backends
2013-05-06 20:36:26 +02:00
Kenneth Skovhede
e5b3f0ea93
Rewrote all backends to use the new Uri parser.
...
Updated the regex to be a little more forgiving.
Does not handle paths with @, like "ftp://server/@folder"
2013-05-05 23:46:00 +02:00
Kenneth Skovhede
62c75d9af9
Removed all informs code (no more 1.3.x UI)
2013-05-05 17:07:24 +02:00