I updated my AWS SDK to their latest version (AWSSDK.Core v3.x) and now the Telerik CloudUpload component is not working. I have a class that derives from AmazonS3Provider as shown in your docs, and when I set the AmazonS3Client property of this class, I get the error "The type 'AmazonS3Client' is defined in an assembly that is not referenced. You must add a reference to assembly 'AWSSDK, Version=2.0.5.0, Culture=neutral, PublicKeyToken=9f476d3089b52be3'"
Can you guys release an update that supports the AWSSDK version 3+?
18 Answers, 1 is accepted
For Q1 we are going to update to the latest SDK.It seems that it is 2.3.52. I am not quite sure that our code base is compatible with AWSSDK.Core v3.x. Unfortunately you should use the required version.
Regards,
Peter Filipov
Telerik
This is really an issue, as some components from Amazon and other companies require v3.x of their SDK, and you guys should really follow suit to keep up with the times. We (and many others) use DynamoDB for our SessionState using the AWS.Extensions nuget package, but this is now marked OBSOLETE by Amazon -- with instructions to use AWS.SessionProvider instead. AWS.SessionProvider requires v3.x of their SDK.
The main difference between v2 and v3 is that there are now separate packages for S3, DynamoDB, and other AWS products instead of them all being lumped in together in one AWSSDK package. This really should be no big deal for you guys to update, and honestly I'm surprised that a technology company like Telerik hasn't already updated the components -- v3 RTM'd over 4 months ago.
I have logged an item into our product backlog to revise the references and update them with the highest version possible.
Regards,
Peter Filipov
Telerik
ErrorCS0012 The type 'AmazonS3Client' is defined in an assembly that is not referenced. You must add a reference to assembly 'AWSSDK, Version=2.0.5.0, Culture=neutral, PublicKeyToken=9f476d3089b52be3'
Since the libraries are different, I don't believe it is even possible to bind from v2 of AWSSDK to v3 of AWSSDK.Core.
The suggested workaround to bind from 2.0.5.0 version (the one that we use in the implementation of our control) to 3.x version will not work. As you mentioned, with the AWSSDK 3, there are major changes in the library structure, that won't allow the above binding.
As my colleague Peter previously mentioned, because of thees changes, our code base will not be compatible with AWSSDK.Core v3.x. This means, that if we are going to offer support for AWSSDK.Core v3.x, we will have to implement major changes in our control too. Currently, this is not part of our near future backlog.
As the discussed improvement could be valuable for other clients too, I would suggest you to create a feature request in our Feedback portal. Depending on the support that it will receive from the community, we may include it in our backlog for some of the forthcoming releases.
Regards,
Veselin Tsvetanov
Telerik
Alright I have created a feature request: Update Amazon SDK to v3.x (AWSSDK.Core) I even included a link to the migration guide -- it's pretty straightforward.
Can you at a minimum provide source code and guidance so that I can create my own AmazonS3Provider that uses the current version of the AWS SDK.
The CloudUpload component is the only Telerik product I currently use, and I can't justify paying $800/year for a product that is actually holding my software development back by forcing me to use obsolete versions of major SDKs.
You could download the source code of the controls from your account on www.telerik.com. A short guide how you could do that is included within this Documentation article. The article is about WinForms, but it is also applicable for the ASP.NET AJAX suite. After following the steps from the guide, you will have to download the Telerik_UI_for_ASP.NET_AJAX_2016_2_504_Source.zip.
Within the above zip archive you will find the solution with our controls suite. The AWS provider implementation for RadClouDUpload is located in Telerik.Web.UI project CloudUpload > Providers > AmazonS3Provider.cs.
The implementation is fully implemented within the code. However, if you need further assistance on this matter, please do not hesitate to contact us.
Regards,
Veselin Tsvetanov
Telerik
Okay I have mixed feelings about this: I downloaded the source code, removed AWSSDK nuget package, added AWSSDK.Core and AWSSDK.S3 nuget packages, and everything compiles and works great. This is super easy (took me about 30 seconds), and I don't see how you guys didn't at least try this when v3 came out almost a full year ago, or at a minimum 7 months ago in October 2015 when I originally posted about this.
I'm relieved I've got a version of Telerik.UI that uses AWSSDK.Core (v3), but really concerned at the lack of effort by the Telerik team.
Hi Matthew,
I am really happy to hear that you successfully migrated the RadCloudUpload control, so it now uses AWS SDK Core and AWS SDK S3 for your project.
As I already mentioned in one of my previous comments, even if it might not require serious development efforts, we consider the migration of the control to AWS SDK S3 as a major (breaking) change in the RadCloudUpload control. Changing the internal dependencies of the control will cause problems for our clients that already have the control in their projects and that decide to upgrade to the migrated version of the controls suite.
At present you are the only customer of ours to have requested this improvement. If there is considerable demand for this update among the community / clients, we will raise its priority and implement it internally.
I hope this explains the situation.
Regards,
Telerik
I have to agree with Matthew. Amazon has moved away from their V2 SDk. Perhaps you need to add an AmazonS3ProviderV3 as a separate ProviderType - this way, your users can migrate at our own pace.
Rebuilding the controls is not acceptable.
The suggestion to add new AWS SDK V3 provider for the RadCouldUpload could be viable approach for this situation. Together with our development and management teams, we will explore and discuss this and other ways to deliver support for AWS SDK V3 for CloudUpload.
Regards,
Veselin Tsvetanov
Telerik by Progress
We are currently discussing within our development team, which would be the most appropriate approach to implement the discussed upgrade for the RadCloudUpload control. As soon as we know something more specific, I will come back to you in this thread.
Regards,
Veselin Tsvetanov
Telerik by Progress
If you need to use a higher 2.x version of Amazone SDK, you could use the approach suggested in the following forum post. Note that this would not work with 3.x version of the SDK.
As I mentioned in my previous post, we are currently researching the most appropriate approach for implementing the discussed upgrade.
Regards,
Veselin Tsvetanov
Telerik by Progress
I am pleased to inform you that starting from R1 2017 release, the RadCouldUpload control uses version 3 of Amazone SDK for its Amazone S3 provider.
Best Regards,
Veselin Tsvetanov
Telerik by Progress