-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove cloud storage SDKs and use the REST API #543
base: master
Are you sure you want to change the base?
Conversation
Codecov Report
@@ Coverage Diff @@
## master #543 +/- ##
=============================
=============================
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
|
||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) | ||
{ | ||
location = Path.GetFullPath(location); | ||
location = directoryName + "\\" + fileName; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will \ work on Linux/Mac?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the connector was able to build and run tests on Linux and Mac machines as well
var task = client.GetObjectAsync(request); | ||
task.Wait(); | ||
// Send the request | ||
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri.AbsoluteUri); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously it's an async operation. Are we getting same behavior after the change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously the client.GetObjectAsync() function was used but task.Wait() was synchronously blocking it. So the behaviour is similar since they both execute as synchronous
Snowflake.Data/Snowflake.Data.csproj
Outdated
@@ -38,7 +34,7 @@ | |||
<Reference Include="System.Net.Http" /> | |||
</ItemGroup> | |||
|
|||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> | |||
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why net 6.0 here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've reverted it back, it was just for testing purposes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we going to do same change in other driver? Why we are moving away from SDK and use REST API? Please benchmark before and after change.
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
This was requested as some of the customer projects also referenced the cloud SDKs which caused incompatibilities in their projects. Another reason was due to being required to install the entire SDK when only upload/download was being used so it was requested to the REST API instead. The python connector also uses the REST API |
I will work on benchmarking and update again with the results |
Based off SF# 00396900
Remove the cloud storage SDKs of AWS, Azure, and GCS and use their REST API for upload/download