We would like to request updating the Azure library for uploading files to Azure Blob Storage.
The WindowsAzure.Storage library has been deprecated and is no longer maintained.
See similar requests from the forums:
Windows Storage has a deprecated reference with RadCloudUpload
Must be migrated to v12 Azure.Storage.Blobs: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.7.0/sdk/storage/Azure.Storage.Blobs
Add the ability to upload whole folders to the RadCloudUpload, similar to the FR for AsyncUpload:
The same functionality as in the AsyncUpload
Add a functionality, which allows developers to pass query string parameters from client to the custom handler. Similar to RadAsyncUpload.
Workaround:
<telerik:RadCloudUpload ID="RadCloudUpload1" runat="server" ProviderType="Azure"
MultipleFileSelection="Automatic" OnClientFileSelected="onClientFileSelected"
HttpHandlerUrl="~/Handlers/UploadToMultipleFoldersHandler.ashx">
</telerik:RadCloudUpload>
<script>
function onClientFileSelected(sender, args) {
var customParam = "test";
sender._module._handlerUrl = "/Handlers/UploadToMultipleFoldersHandler.ashx?type=rcu&customParam=" + customParam;
}
</script>
<%@ WebHandler Language="C#" Class="UploadToMultipleFoldersHandler" %>
using System;
using System.Web;
public class UploadToMultipleFoldersHandler : Telerik.Web.UI.CloudUploadHandler {
public override void SetKeyName(object sender, Telerik.Web.UI.CloudUpload.SetKeyNameEventArgs e)
{
var param = HttpContext.Current.Request["customParam"];
var carsFolder = HttpContext.Current.User.Identity.Name + "/";
e.KeyName = string.Format("{0}{1}_{2}", carsFolder, Guid.NewGuid(), e.OriginalFileName);
}
}
Affects RadCloudUpload and RadAsyncUpload combined with RadProgressArea. Manifests most often on slow networks or very large files. Scroll down for workarounds for both cases. WORKAROUND FOR PROGRESS AREA is to round down the data, as it seems the server reports more bytes uploaded than they actually are, and that tends to happen under slow network conditions <telerik:RadAsyncUpload RenderMode="Lightweight" runat="server" ID="RadAsyncUpload1" MultipleFileSelection="Automatic" EnableInlineProgress="false" /> <telerik:RadProgressManager runat="server" ID="RadProgressManager1" /> <telerik:RadProgressArea RenderMode="Lightweight" runat="server" ID="RadProgressArea1" OnClientProgressUpdating="OnClientProgressUpdating" /> <script> function OnClientProgressUpdating(sender, args) { //debugger if (args._progressData.PrimaryPercent > 100) { args._progressData.PrimaryPercent = 100; } if (args._progressData.PrimaryValue > args._progressData.PrimaryTotal) { args._progressData.PrimaryValue = args._progressData.PrimaryTotal; } console.log(args.get_progressData()); } </script> WORKAROUND FOR CLOUD UPLOAD is to add the following script at the end of the form that will override the built-in XHR handilng to change the way the totals are calculated: <script> Telerik.Web.UI.RadCloudUpload.HandlerUploader.prototype._initializeXmlHttpRequest = function () { this._xhr = new XMLHttpRequest(); var that = this, module = this._module, xhr = this._xhr; xhr.onreadystatechange = function readyStateChanged() { if (xhr.readyState == 4) { if (xhr.status == 200) { that._successfulResponseStatus(xhr); } else if (xhr.status != 0) { that._failedResponseStatus(xhr); } } }; xhr.upload.onprogress = function (event) { that._uploadedSize += event.loaded; var percents = Math.round((event.loaded / event.total) * 100) + "%"; module._renderingManager.updateRowProgress(that._uploadingEntity.row, percents, true); }; } </script>
When uploading a file to the CloudUpload control with an ’ apostrophe symbol in the name (Examples of the 3C’s.pdf), the control fails with Uncaught Error: Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON. Parameter name: data at Function.Error.create (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3ad28568d3-e53e-4706-928f-3765912b66ca%3aea597d4b%3ab25378d2:6) at Function.Error.argument (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3ad28568d3-e53e-4706-928f-3765912b66ca%3aea597d4b%3ab25378d2:6) at Function.Sys.Serialization.JavaScriptSerializer.deserialize (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3ad28568d3-e53e-4706-928f-3765912b66ca%3aea597d4b%3ab25378d2:6) at c.RadCloudUpload.HandlerUploader._successfulResponseStatus (RadCloudUploadScripts.js:477) at XMLHttpRequest.p (RadCloudUploadScripts.js:463) Note, it's not the typical apostrophe. If you replace ’ with a normal ' windows apostrophe, the control uploads the file just fine. In order to test, create any file on your system using that special character and try to upload that file using the demo application, located: https://demos.telerik.com/aspnet-ajax/cloud-upload/examples/overview/defaultcs.aspx
When using the radcloudupload component with large files, the progress bar indicates that the download is finished when it is not. Is it possible to make the display match the reality of the download? Thx
There is a problem with uploading file which name contains greek, hebrew or russian letters. It is also replicated with other languages that contain non-latin letters, such as Japanese or Korean. Here are the steps to reproduce the problem. 1. Create text file "Καλώς ήλθατε.txt" and save it on local disc (file may contain any text). 2. Open http://demos.telerik.com/aspnet-ajax/cloud-upload/examples/overview/defaultcs.aspx 3. Click Select button and browse file "Καλώς ήλθατε.txt" 4. Message "Uploading Files 1/1" is displayed but file is not uploaded. 1. Create file Благодатное-небо-с-предстоящими.txt on local disc (file may contain any text). 2. Open http://demos.telerik.com/aspnet-ajax/cloud-upload/examples/overview/defaultcs.aspx 3. Click Select button and browse file Καλώς ήλθατε.txt 4. Message "Uploading Files 1/1" is displayed but file is not uploaded. Here is the error from the console when trying to upload such a file: Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_Combine…:6 Uncaught Error: Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON. Parameter name: data at Function.Error.create (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_Combine…:6) at Function.Error.argument (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_Combine…:6) at Function.Sys.Serialization.JavaScriptSerializer.deserialize (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_QsfScriptManager_TSM&compress=1&_TSM_Combine…:6) at c.RadCloudUpload.HandlerUploader._successfulResponseStatus (RadCloudUploadScripts.js:477) at XMLHttpRequest.p (RadCloudUploadScripts.js:463)
The CloudUpload's Progressbar is not initially shown when uploading files in MS Edge v. 40.15063 (Creator's Edition)
Ability to add Folder attribute to cloud upload control which gets appended to the SubFolderStructure in the provider. Without it all files go into the same SubFolderStructure folder, not great when thousands of files. Helps to keep the files more organised.
Follow Amazon's migration guide to update the RadCloudUpload to support version 3.x of Amazon's SDK -- it has been out for quite some time. You cannot have both v2 and v3 referenced in the same project, and Telerik forcing us to use v2 is holding back development with other items in v3. http://docs.aws.amazon.com/AWSSdkDocsNET/V3/DeveloperGuide/net-dg-migration-guide-v3.html
The RadCloudUpload doesn't handle correctly situation, when the communication between client and server becomes disconnected - the client side doesn't get notified (the upload keeps spinning). All the details and steps to reproduced are in the following thread: http://www.telerik.com/account/support-tickets/view-ticket.aspx?threadid=951973 Thanks, Vlad.
The RadCloudUpload control does not expose the necessary property when the OnClientFileUploadRemoving event fires (using Azure). To delete a file from Azure BLOB storage you need the keyname property. At the time of the OnClientFileUploadRemoving event, the only property exposed is the orignalFileName. Azure creates a keyname to store the file. It consists of a GUID + the original file name, e.g., for a file named "test.txt" the keyname is "554cfa68-ee24-421f-94e8-7080cf70a11f_test.txt." That's to allow for duplicate original file names in the container. The only way to delete a file from Azure storage is by the keyname property. That property is not exposed at the OnClientFileUploadRemoving event, so to be able to delete the file, you have to save that property in some other way at the time of uploading (in an array or database). That could fail. Obviously the control knows the keyname, as it is exposed when the file is uploaded, so it should store and expose that property.
The ProgressBar actually indicates the upload process from the client to the server but does not reflect the upload process from the server to the cloud service.
I would like radCloudUploader to be able to integrate with DropBox (and skydrive?) As my client has a large investment in DropBox (cos it works on mobile), but I want to be able to upload documents to a given project (subdirectory) via a single interface without giving them total access to that directory. I would also like to have some integration to a search service such as Azure Search https://msdn.microsoft.com/en-gb/library/azure/dn798927.aspx so that documents uploaded can be searched. Which results in me adding lots of 'meta data' to the file that is being uploaded, but the actual content can have a free text search on there.