Commit Graph
174 Commits
Author SHA1 Message Date
Kenneth Hsu 2aa76881a5 Mark fields that don't need to be reassigned as readonly.
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2019-10-19 13:59:22 -07:00
Kenneth Skovhede f1cf209e86 Revert "Updated AWS core library to 3.3.103.41 and AWS S3 library to 3.3.104.29"
This reverts commit 21a3add369.
2019-09-20 12:59:34 +02:00
Kenneth Skovhede 21a3add369 Updated AWS core library to 3.3.103.41 and AWS S3 library to 3.3.104.29 2019-09-20 11:42:17 +02:00
Kenneth Skovhede d8ef349c3e Changed lookup to use dictionary lookup instead of looping over the keys. 2019-09-17 22:01:33 +02:00
Kenneth Skovhede b04b00f92a Changed hostnames from s3-region.amazonaws.com to s3.region.amazonaws.com as specified in the documentation:
https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
2019-09-17 11:17:58 +02:00
Kenneth Skovhede ccc4bb78b4 Rewrote S3 to use dictionaries with inline specifiers, instead of arrays with key-value pairs. 2019-09-17 11:16:09 +02:00
Kenneth Skovhede c9dc151f4b Updated S3 providers.
Added AP Hong Kong and ME Bahrain to locations.
Added One Zone IA and Deep Archive to storage classes.
2019-09-17 10:59:47 +02:00
BlueBlock f57a9d8a73 nuget updates
aws,azure,fluentftp,mailkit,cocol
2019-09-14 07:36:22 -04:00
BlueBlock 28074a4d4e update nuget packages
includes update to FluentFTP
2019-08-31 16:42:12 -04:00
BlueBlock 815e30b63b update csproj toolverion and nuget packages 2019-07-31 13:20:03 -04:00
BlueBlock f3ac04e49a nuget packages updated to keep current
and important to keep the aws sdk current
2019-07-30 09:36:38 -04:00
BlueBlock 08a1e9998a initial upgrade to framework 4.6.2
- no code changes except those noted below
- projects upgrade to 4.6.2
- wixinstaller project upgraded automatically by VisualStudio
- wixinstaller updated to require 4.6.2
- Library.Encryption changed to Standard2.0 so accommodate update to SharpAesCrypt
2019-07-26 09:18:16 -04:00
Sean Templeton b02b19e683 Change Put method name to PutAsync 2019-03-17 18:28:45 -05:00
Sean Templeton c05f304fd7 Update S3, Sharepoint, Tahoe, and WEBDAV backends for async Put 2019-03-05 21:25:35 -06:00
Sean Templeton 0c122ff550 Change IBackend and IStreamingBackend to return Task for Put() 2019-03-03 21:43:10 -06:00
Rune HenriksenandGitHub 9d3fb26989 Merge pull request #3677 from FroggieFrog/update-known-locations
added new known locations of S3
2019-02-25 23:45:47 +01:00
FroggieFrog 496b923079 added new known locations of S3 2019-02-25 16:24:28 +01:00
FroggieFrog 97894bc655 fix #3665 added "Wasabi Hot Storage (EU Central)" 2019-02-25 16:13:57 +01:00
Kenneth Skovhede f5de77053a Added explicit isroot property, and changed to be a string generated from false.ToString() 2019-01-16 14:22:24 +01:00
verhoek 97c26adcbb Refactored into one responsibility functions. 2019-01-12 17:08:08 +01:00
verhoek 7543f2999a Fixed typo. 2019-01-12 16:10:34 +01:00
verhoek ed38d19ac7 Made helper methods static. 2019-01-12 15:58:57 +01:00
verhoek e412b404be Rewrote CanCreateUser in a more verbose way. 2019-01-12 15:46:30 +01:00
verhoek 9fa2e7c453 Code improvements. 2019-01-11 13:19:36 +01:00
verhoek 68d1ba4b39 Replaced type by var. 2019-01-11 13:19:21 +01:00
verhoek d5119d2422 Simplifying object initialization. 2019-01-06 18:41:57 +01:00
Kenneth SkovhedeandGitHub 1b54cd6107 Merge pull request #3456 from verhoek/issue/3311
Refactor the way paths are handled.
This fixes #3311 PathTooLongException when using USNJournal
2018-11-08 12:50:09 +01:00
Rune Henriksen edefa17b58 updated AWSSDK to newest version 2018-11-04 14:59:38 +01:00
verhoek 72b1f6b6f8 Updated project files. 2018-11-02 22:45:07 +01: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
verhoek bc053df294 Moved basic IO helper functions to Library.IO. 2018-10-27 12:17:07 +02:00
Wei Zeng 0abc0dad99 #3430 add US-West support for wasabi 2018-10-16 15:09:43 +11:00
Kenneth Hsu 0c1ac9c489 Replace chained LINQ calls with call to overload with predicate.
This simplifies the code by reducing the number of enumerators created
while also making the code slightly more readable.
2018-10-06 16:20:18 -07:00
Kenneth Hsu d4d1945faf Use utility method to append trailing slash.
This removes some duplicated code.
2018-09-22 10:19:45 -07:00
Kenneth Hsu 0d23302220 Use ordinal case-insensitive comparison instead of ToLower. 2018-09-19 15:21:59 -07:00
Kenneth Skovhede 98303a6249 Removed console output from the S3 module 2018-06-20 10:54:37 +02: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 e124329f1e Merge branch 'feature/improved-logging' 2018-03-16 08:38:14 +01: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 Hsu 1f8b542604 Use nameof operator when constructing ArgumentNullException.
This will make rename refactorings easier in the future.
2018-03-07 17:53:08 -08: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 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
Kenneth Hsu 3d51e9153b Avoid signing assemblies.
Using strong-named assemblies can cause difficulties with the GNU LGPL
license, which allows for one to recombine or relink their application
with modified versions of the code.  While one solution is to share the
private key so that people can sign the assemblies themselves, this
would break the trust that is expected from signed assemblies.  For now,
the easiest fix is to simply not sign the assemblies.  Note that by
doing so, we prevent the code from being referenced from other signed
assemblies.

This also fixes an issue introduced in revision ba94d36a80 ("Added
auto-update for WindowsService and Service."), where the WindowsService
project (signed) referenced the AutoUpdater project (not signed).

We also removed instances of <SignAssembly>false</SignAssembly> to be
consistent with newly created .csproj files that do not contain the
SignAssembly element.

This was motivated by the discussion in issue #2814.
2017-10-15 22:00:23 -07: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 93e04180c6 Updated the AWS libraries for S3 2017-09-23 00:27:06 +02:00
Tyler Gill 83a1dcfb64 Replace all instances of InvariantCultureIgnoreCase with OrdinalIgnoreCase in string comparisons.
InvariantCulture is useful when comparing / sorting human language strings in a culturely correct way. It handles things like accented letters in a way that makes sense to humans (e.g., 'a' should be sorted next to 'á', rather than after 'z').
Ordinal looks just at the raw code points of the characters. As such, it is recommended for use in cases when comparing system strings (file paths, command line parameters, config settings, etc.). Since it doesn't need to use the culture specific sorting rules, this method can often be faster.

For more information, see https://stackoverflow.com/questions/492799/difference-between-invariantculture-and-ordinal-string-comparison (and other related questions)
2017-09-18 23:55:08 -06:00
Kenneth Skovhede 81f22826ca Changed S3 IAM to only use the bucket name in the policy document. 2017-09-16 20:29:44 +02:00