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.
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.
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.
This fixes the reported timeout issue with MicrosoftGraphBackend cause by each fragment being required to be uploaded within the `--short-timeout` value.
With this PR the overall progress is monitored with `--read-write-timeout` (as before) and each fragment's speed is not measured.
Also updated the fragment numbers with +1 so the first fragment is "1/5" instead of "0/5", such that the last fragment is "5/5".
This PR handles empty responses with the status code 204 - No Content.
Prior to this PR a 204 response when cancelling an upload session would cause an error due to not being able to parse the empty body.
This should get us one step closer to figuring out what is triggering the errors.
This PR adds an explicit check for the status code for a B2 upload to ensure that non-success status codes are treated as failures.
Prior to this PR an upload would be considered a success if it has a failed status code but returns a valid JSON document with a `contentLength` property.
This PR updates the parsing code for errors/messags to avoid trying to read the stream twice.
This also removes the support for the unused HttpWebResponse (which is deprecated).
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.
This PR updates the File backend to sanitize filenames returned when listing the directory. For now, the sanitization only removes trailing/leading null characters.
This fixes#6449
The URLs passed to the custom URL parser were not decoding the path part, but passing it directly. This caused problems if the input was correctly URL encoded.
The updated code now correctly decodes the hostname+path parts, and encodes them again.
This PR updates OAuth handling to not retry if the request has been cancelled, as no further attempts will work, but the wait delay would still be applied.
Now the cancellation triggers immediately, even if we are in the wait stage.
If the server returns an error message, that message is now propagated to the client so the user can see what the problem might be.